[Java]PDF splitsen in meerdere pagina's

Pagina: 1
Acties:

  • van.der.schulting
  • Registratie: Juli 2002
  • Laatst online: 09-08-2024
Ik wil een PDF splitsen in losse pagina's. Laten we even voor het gemak zeggen, mijn PDF is 200 pagina's en die wil ik dus splitsen in 200 losse pdf files. Mijn PDF-file staat in C:\Test.

Ik heb twee manieren gevonden hoe ik kan splitsen:
1. Met behulp van Java zelf.
2. Met Java een externe applicatie aanzwengelen via de klasse Runtime.getRuntime().exec(command).

Ad 1.
Ik heb twee mogelijkheden:
1. Met behulp van PDFsam en jcmdline zou het moeten lukken. Ik begrijp echter niet goed hoe dit werkt -> het lijkt me een erg ingewikkeld framework, zeker als ik me bedenk dat ik alleen even een pdf'je wil splitsen.
2. Met behulp van iText. Hierme kun je volgens mij vrij makkelijk een PDF splitsen. Probleem is echter: iText is gecompileerd met Java 1.4 en ik gebruik Java 1.6 -> Dit levert problemen op. Ik moet dus de source recompilen met Java 1.6. Ik heb dit geprobeerd, maar omdat ik geen ervaring heb met het (re)compilen van grote projecten loop ik tegen allerlei problemen aan. Hij kan oa bepaalde klasse, zoals java.awt.Desktop niet vinden.
Bovendien weet ik eigenlijk niet hoe ik moet compilen -> gewoon exporteren naar een JAR of moet ik daarvoor Apache Ant gebruiken?

Ad 2.
De applicatie PDFTK kan prima PDF splitsen, alleen kun je geen output directory opgeven. Stel PDFTK staat in C:\PDFTK. Al je PDF's komen dan ook in C:\PDFTK terecht, terwijl ze juist in C:\Test terecht moeten komen. Ik kan wel PDFTK 'on-the-fly' ff kopieren mbv Java naar de dir C:\Test en dan de PDF gaan splitsen. Na het splitsen verwijder ik dan PDFTK weer uit C:\Test. Dit is waarschijnlijk een oplossing, maar ik vind dat wel een hele lelijke oplossing.

Ik heb drie vragen:
1. Wie kent een commandline tool die PDF's kan splitsen in losse pagina's, waarbij ik de input en output dir kan opgeven?
2. Wie kent een (makkelijke) manier om mbv Java PDF's te splitsen? Met PDFsam kom ik er niet uit.
3. Wie kan mij heel misschien vertellen hoe ik iText 2.1.2u kan compilen mbv Java 1.6?

  • Teun_2
  • Registratie: Oktober 2003
  • Laatst online: 14-11 07:36
En waarom geen shell/bashscriptje dat gebruikt maakt van pdftk?

  • van.der.schulting
  • Registratie: Juli 2002
  • Laatst online: 09-08-2024
Zoutvat schreef op vrijdag 30 mei 2008 @ 14:32:
En waarom geen shell/bashscriptje dat gebruikt maakt van pdftk?
Ik heb geen ervaring met shellscripts -> lees: geen idee hoe dat moet. Niet onder Windows en niet onder Linux. Ik werk op dit moment trouwens onder Windows.
Als ik mbv een shellscript gebruik maak van PDFTK, kan ik dan niet net zo goed PDFTK tijdelijk in de doelmap kopieren. PDFTK uitvoeren en PDFTK weer verwijderen uit de doelmap (=de lelijke oplossing die ik aangaf)

Met andere woorden, hoe kan ik in deze context een shellscript inzetten om PDFTK te gebruiken?

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 19:02
Java is backwards compatible dus een JAR die is gecompileerd met source level 1.4 en tegen de JDK van 1.4 moet gewoon werken onder een 1.6 JRE.

Wat voor problemen levert het op dan? Bij mij werkt iText namelijk prima onder Java 1.6...

  • Teun_2
  • Registratie: Oktober 2003
  • Laatst online: 14-11 07:36
batch scriptje:
(eerst wel pdftk in je pathvariabele zetten:)
Heb hier op de moment geen windows, dus gaan garanties dat het werkt. Ook zou je
move *_*.pdf %2 even moeten aanpassen in iets als: move page_*.pdf %2. ik weet niet echt vanbuiten hoe die bestanden eruit zien.
de eerste parameter is het bestand dat je wil splitten en de tweede is de outputdirectory.

code:
1
2
3
4
pdftk %1 burst
erase doc_data.txt
move *_*.pdf %2
echo "done"

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

van.der.schulting schreef op vrijdag 30 mei 2008 @ 13:33:
2. Met behulp van iText. Hierme kun je volgens mij vrij makkelijk een PDF splitsen. Probleem is echter: iText is gecompileerd met Java 1.4 en ik gebruik Java 1.6 -> Dit levert problemen op.
Welke problemen levert dat op? Er zou volledige backwards compatability moeten zijn (tenzij iText niet publieke API gebruikt, zoals bijvoorbeeld sun.text.Normalizer). Mijn ervaring is ook dat iText onder Java 5 en 6 prima werkt...

[ Voor 9% gewijzigd door Confusion op 31-05-2008 09:28 ]

Wie trösten wir uns, die Mörder aller Mörder?


Verwijderd

Ik gebruik iText dagelijks onder JDK 1.6, ik zie niet in waarom dit niet zou werken?

De iText website maakt ook melding van het feit dat het werkt met Java 1.4 of hoger en maakt geen melding van compatibiliteitsproblemen.

[ Voor 45% gewijzigd door Verwijderd op 31-05-2008 10:47 ]


  • van.der.schulting
  • Registratie: Juli 2002
  • Laatst online: 09-08-2024
Ik krijg een exception 'NoClassDefFound'. Ik ging er eigenlijk direct vanuit dat dit temaken had met compatibiliteisproblemen met de Java-versie.

Aangezien nu al drie mensen roepen dat zij geen problemen hebben met iText onder Java 1.6. ga ik eerst wel ff kijken of er misschien niet toch iets anders fout gaat. Ik kan pas woensdag weer bij de code, dus ik ga dan ff verder kijken of het wel echt aan de incompatibiliteit ligt (wat ik in eerste instantie vermoedde).

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

van.der.schulting schreef op zondag 01 juni 2008 @ 01:01:
Ik krijg een exception 'NoClassDefFound'. Ik ging er eigenlijk direct vanuit dat dit temaken had met compatibiliteisproblemen met de Java-versie.

Aangezien nu al drie mensen roepen dat zij geen problemen hebben met iText onder Java 1.6. ga ik eerst wel ff kijken of er misschien niet toch iets anders fout gaat. Ik kan pas woensdag weer bij de code, dus ik ga dan ff verder kijken of het wel echt aan de incompatibiliteit ligt (wat ik in eerste instantie vermoedde).
Ik neem aan dat je in de stack trace wel kunt zien welke klasse niet gevonden wordt?

Fat Pizza's pizza, they are big and they are cheezy


  • van.der.schulting
  • Registratie: Juli 2002
  • Laatst online: 09-08-2024
JKVA schreef op zondag 01 juni 2008 @ 11:23:
[...]

Ik neem aan dat je in de stack trace wel kunt zien welke klasse niet gevonden wordt?
Ga ik inderdaad even naar kijken -> ik ben er waarschijnlijk gewoon te snel vanuit gegaan dat het aan incompatibiliteit van Java lag.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

van.der.schulting schreef op zondag 01 juni 2008 @ 14:32:
ik ben er waarschijnlijk gewoon te snel vanuit gegaan dat het aan incompatibiliteit van Java lag.
Die zijn sowieso vrij zeldzaam. Zie
http://java.sun.com/j2se/1.4.2/compatibility.html voor alles voor 1.4.2,
http://java.sun.com/j2se/1.5.0/compatibility.html voor 1.4.2 -> 1.5
en
http://java.sun.com/javas...option/adoptionguide.html voor 1.5 -> 6.0

[ Voor 8% gewijzigd door Confusion op 01-06-2008 15:56 ]

Wie trösten wir uns, die Mörder aller Mörder?

Pagina: 1