PCL-Datei in Einzelseiten aufsplitten

okin

Mitglied
Hallo,

ich möchte gerne eine PCL - Druckspooldatei in ihren Einzelseiten zerlegen.
Nach dem Steuerzeichen (form feed -> 0x0C) habe ich in meiner Test-PCLdatei eine Aufsplittung vorgenommen.
Mein vorgehen zeigt der folgende Code:
Java:
		File fFile = new File( "C:\temp\test.pcl" );

		FileInputStream fileInputStream = new FileInputStream(fFile);
		byte[] data = new byte[(int) fFile.length()];
		fileInputStream.read(data);
		fileInputStream.close();

		byte[] bPCL5RegExp = new byte[] {0x0C};  // ESC->formfeed
		String[] sArr = new String(data, Charset.forName("latin1")).split( new String(bPCL5RegExp, Charset.forName("latin1")) );

		for ( int k = 0; k < sArr.length; k++ ) {				
			if( k > 0 ) {
				FileOutputStream fos = new FileOutputStream("c:\\temp" + "\\" + k + "_" + fFile.getName());
				fos.write(sArr[k].getBytes());
				fos.close();
			}
		}

Wenn ich mir jetzt jedoch die Einzelseiten mit einem PCL-Viewer ansehen, schauen diese anders aus.
Anscheinend gehen mir hier Informationen verlohren.

Ich kenne mich mit PCL-Dateien leider nicht aus. Gibt es hier vielleicht Header und Footer?
Hat einer eine Idee, was ich hier zu berücksichtigen habe?

Ganz so einfach geht es anscheinend dann doch nicht.


Vielen Dank für die Hilfestellung
Gruß
Okin
 
FormFeed besteht nicht nur aus einem byte!

Java:
new byte[] { 0x1b, 0x2a, 0x72, 0x42, 0x0c}
Dies ist der FormFeed wonach du suchen musst!

Aber am Ende vom Dokument steht evtl. auch nochmal ein FormFeed (zumindest wenn man PDF mit Ghostscript und ljet4 in PCL wandelt). Nicht das du da nochmal ein Dokument von machst obwohl es keins mehr ist!
 
Hi TR,

das scheint aber wohl nicht bei meiner PCL-Datei so zu sein.

Deinen byte-String:
Java:
new byte[] { 0x1b, 0x2a, 0x72, 0x42, 0x0c}
kann ich in meiner PCL-Datei leider nicht finden.
Google meint aber auch, das "0x0C" das eigentliche form feed sei.

Vielleicht hast du andere PCL-Dateien vorliegen, bei denen das so ist.

Ich habe die Vermutung, dass ich schon richtig trenne, aber das es im Dokument an Anfang Headerinformationen gibt, wie zum Beispiel ein Hintergrundformular. Leider aber keine Ahnung, wie ich das rausfinden kann.

Viele Grüße
Okin
 

Zurück
Oben