Command Line .TXT naar .PDF met page break

Pagina: 1
Acties:

  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 23-07 20:28
Ik ben op zoek naar een command line tool die .txt kan converteren naar .pdf. Op zich is er op het net genoeg te vinden alleen missen die allemaal een belangrijke optie en dat is het forceren om verder te gaan op een nieuwe pagina.

Op dit moment werken we met .txt bestanden met een vaste layout en nu moet dat naar pdf toe.

In de tekstbestanden staat er een teken die laat zien dat er verder gegaan moet worden op een nieuwe pagine, \r\n.

Voorbeeld: inhoud.txt
code:
1
2
3
4
5
6
7
8
9
Pagina 1
Regel 1
Regel 2
Regel 3
\r\n (oftewel zo'n vierkantje ;))
Pagina 2
Regel 1
Regel 2
Regel 3


Dit kan ik prima converteren met http://www.adultpdf.com/products/txttopdf/index.html
Alleen houdt deze geen rekening mee met de \r\n :(

Het moet dus zo worden: inhoud.pdf

pagina 1
code:
1
2
3
4
Pagina 1
Regel 1
Regel 2
Regel 3

pagina 2
code:
1
2
3
4
Pagina 2
Regel 1
Regel 2
Regel 3


Iemand een idee met welk programma dat wel toevallig kan?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Je zou kunnen denken aan een script dat een omweg doet: splits eerst uit naar verschillende (tijdelijke) files door te spliten op \r\n en maar hier tijdelijke losse pdf files van. Nu kan je deze vervolgens weer samenvoegen via een tootlje of evt. zelfs een virtuele printer.

Denk aan Ghostscript of een frontend zoals http://home.hccnet.nl/s.vd.palen

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 23-07 20:28
Ik wil niet afhankelijk zijn van een of andere (virtueele) printer.

Zelf heb ik eens zitten zoeken naar een open source PDF API voor JAVA en kan al tot het volgende resultaat komen:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package txt2pdf;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import orinoco.Document;
import orinoco.Font;
import orinoco.Paper;
import orinoco.PDFWriter;

public class Main {
    public static void main(String args[]) {
        try {
            String myString = new String();
            ArrayList myArrayList = ReadFile("test.txt");
            Document myDocument = new Document(Paper.A4, new PDFWriter(new File("test.pdf")));
            Font myFont = new Font(Font.COURIER, 10);
            myDocument.open();
            for(int i=0; i < myArrayList.size(); i++) {
                myString=myArrayList.get(i).toString();
                if (myString.compareTo("return") == 0) {
                    myDocument.newPage();
                } else {
                    myDocument.writeLine(myString, myFont);
                }
            }
            myDocument.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    
    private static ArrayList ReadFile(String MyFile) {
        ArrayList myArrayList = new ArrayList();
        try {
            String myString = new String();
            BufferedReader myBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(MyFile)));
            while((myString=myBufferedReader.readLine()) != null) {
                myArrayList.add(myString);
            }
            myBufferedReader.close();
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
        return myArrayList;
    }
}


Waarschijnlijk kan ik het beter zelf maken O-)

[ Voor 4% gewijzigd door Pascal Saul op 23-01-2006 21:19 ]