<< back
PD4ML: PDF MergePD4ML allows to append (or prepend) a just converted document with PDF pages, taken from a static PDF file.
package samples;
import java.awt.Insets;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.InvalidParameterException;
import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;
public class PdfMerge {
protected int topValue = 10;
protected int leftValue = 20;
protected int rightValue = 10;
protected int bottomValue = 10;
protected int userSpaceWidth = 1300;
public static void main(String[] args) {
try {
PdfMerge jt = new PdfMerge();
jt.doConversion3("http://pd4ml.com/sample.htm", "c:/pd4ml.pdf",
"c:/appendix.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
public void doConversion3( String url, String outputPath, String pdfToMerge )
throws InvalidParameterException, MalformedURLException, IOException {
File output = new File(outputPath);
java.io.FileOutputStream fos = new java.io.FileOutputStream(output);
PD4ML pd4ml = new PD4ML();
pd4ml.setHtmlWidth(userSpaceWidth);
pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));
pd4ml.setPageInsetsMM(new Insets(topValue, leftValue, bottomValue, rightValue));
pd4ml.merge(
new FileInputStream(pdfToMerge), // PDF file input stream
1, // starting PDF page number to merge
-1, // last PDF page to merge ("-1" means "till the document end")
true ); // "true" - append,
// "false" - prepend the generated document with the static pages
pd4ml.render(new URL(url), fos); // actual document conversion from URL to file
fos.close();
System.out.println( outputPath + "\ndone." );
}
}
Note: currently (v380) PDF parser of PD4ML
has a number of limitations: it cannot parse linearized PDFs and edited PDFs
(which have multiple xref tables).
|