Convert easily HTML and Word Docx to PDF in your Java applications
Sferyx JSyndrome PDF Generator and Converter
Advanced Java PDF Generator and Converter component - create easily PDF and PDF/A documents from HTML, Plain text, Microsoft Word Docx, Rich Text Format RTF, JPEG, GIF, PNG, BMP
Sferyx PDF Generator Component is powerful Java PDF Converter and Generator component. It converts and generates quickly and easily PDF files from HTML, Plain Text, Microsoft Word Docx, Rich Text Format RTF, JPEG, GIF, PNG, BMP in any Java Application, Oracle Forms - including CLOB fields, Eclipse SWT, JavaFx and more. With only a few lines of code is possible to generate complex PDF files from any source or location and the resulting PDF can be written to a file, OutputStream or shown inside the PDF viewer. Supports all UTF-8 languages such as English, German, French, Italian, Spanish, Portuguese, Swedish, Norwegian and full support for Arabic, Cyrillic, Greek, Hebrew, Farsi, Chinese, Japanese, Hindi, Tamil and more.
You can create PDF files dynamically by adding the content on-the-fly with automatic pagination directly inside your Java application with only a few lines of code, generate page breaks, headers, footers and page numbers when needed and add File Attachments in the PDF document.
Trusted Code Signing Security Certificate
Version 23.0
Sferyx JSyndrome PDF Generator Component Edition : Download Sferyx PDFGenerator - PDFGeneratorDemo.zip
- Pure Java PDF Generation engine - allows fast and easy PDF creation from various sources and also convert even very complex HTML/XHTML documents with single line of code - 100% in house development - it does not depend on external packages.
- It converts and generates quickly and easily PDF and PDF/A files directly from HTML, Plain Text, Microsoft Word Docx, Rich Text Format RTF, JPEG, GIF, PNG, BMP
- Royalty free redistribution with your applications
- Automatic multiple page layout, rendering and inclusion of all images, inline and linked styles etc.
- Possibility to specify the desired Page format and margins and whether to scale the content to fit inside or not
- Works with any JRE/ JDK 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 9, 10, 11, 12, 13, 14, 15, 16 or higher
- Support for Oracle Forms and full generation of PDF from Oracle Forms and CLOB
- Fully compatible with Swing, SWT/Eclipse, Oracle Forms, Java Servlets, JSP
- Support for all western Latin languages such as English, German, French, Italian, Spanish, Portuguese, Swedish, Norwegian etc.
- Support for Arabic, Cyrillic, Greek, Hebrew, Farsi, Hindi, Tamil and many other languages through UTF-8 pdfGenerator.setCharset("utf-8") character set encoding and Chinese language is also supported through the code: pdfGenerator.setCharset("ISO-10646-UCS-2")
- Automatic embedding of all TTF fonts contained inside the document when the UTF-8 encoding is set using the code: pdfGenerator.setCharset("utf-8")
- Support for PDF/A file specification when pdfGenerator.setCharset("utf-8") is set.
- Compatible with Headless mode for server systems
- Compact size and fast document generation
- Possibility to specify whether to split the pages automatically or to generate a poster-like one page PDF file with automatically determining the page length to fit the content.
- You can specify Headers, Footers and Page numbers in any formatting and position through full HTML formatting support.
- Now all hyperlinks inside the HTML document are generated as links (annotations) automatically into the resulting PDF file
- Support for disabling the table breaking across multiple pages
- Support for disabling lists breaking across multiple pages
- Support for the CSS page break elements page-break-before:always, page-break-after:always, page-break-inside:never
- Support for adding File Attachments to the generated PDF document
Example usage
The use of the PDFGenerator component is quite simple - with only a few lines of code is possible to generate and convert practically any document to PDF and add headers, footers, page numbers etc.
If your document contains special fonts, characters or symbols you should set the characters set to UTF-8 using the following method - pdfGenerator.setCharset("utf-8"); - this will also generate PDF/A compliant file. Here are some examples:
This method will recognize automatically if document is
html, docx, rtf, txt or image and will convert it accordingly. To use this
automatic conversion the URL must end with the corresponding extension like
docx, txt, rtf, jpeg, gif, png etc. Otherwise you can use the methods below
for specific cases.
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromURL ("http://your_url_here", "c:/pdfgenerator-test1.pdf", "A4", "Portrait");
Dynamically Generate PDF in Java with the Sferyx PDF Generator
You can generate even very complex
PDF documents dynamically in your Java application by simply providing all the formatting
in HTML and inserting page breaks when new pages are needed - the PDFGenerator will take care automatically for all the pagination
of long
formatted text spanning through multiple pages and also tables, lists etc.
This functionality is perfect for creating various reports and other
documents which need to be generated dynamically with rich text formatting.
You can change the Page Headers and Footers when you want directly in the
multipage flow and the PDFGenerator takes care about the pagination
automatically so you don't have to worry how many pages span and how long
are the different document sections. You can even append dynamically
different file formats such as RTF, DOCX, TXT, HTML and many different image
formats and all these files will be converted and included automatically in
the resulting PDF file. See the example below which illustrates how to
achieve this very easily:
PDFGenerator pdfGenerator=new PDFGenerator();
//Create Header if needed - you can create also first page header if you want
pdfGenerator.setHeader("<p style=\"text-align:right;background-color:#ddd;\"><span style=\"font-size:18pt;color:green;\"><b>This is the header here</b></span></p>");
//Create Footer and Page Numbers - the page numbers can be inserted anywhere in the document.
pdfGenerator.setFooter("<i>This is some footer with page numbers Page: <b>@#SferyxPDFGenerator-PageNumber#@</b> of pages: <b>@#SferyxPDFGenerator-TotalPagesNumber#@</b></i>");
//Open the content buffer to insert the content - HTML, Docx, RTF, Text etc - everything can be merged together.
pdfGenerator.openContentBuffer();
//Append the content to the content buffer - you can insert styles, images and any kind of formatting.
pdfGenerator.appendHTMLContentToContentBuffer("<style>body{font-size:12pt;color:blue;} h1{background-color:yellow;}</style>");
pdfGenerator.appendHTMLContentToContentBuffer("<h1>This is H1 header</h1>Some other text <b>very important <i>stuff</i></b> with page break after");
//Insert page break to create new page - the PDFGenerator will handle automatically all the pagination for long text if more pages are needed, tables and everything.
pdfGenerator.addPageBreakToContentBuffer();
//Append the content for the new page.
pdfGenerator.appendHTMLContentToContentBuffer("<h2 style=\"background-color:green;border-bottom:1px solid red;color:white\">This is second H2 header</h2>Some other text <span style=\"color:orange\">extremely interesting <u>stuff</u></b></span><br>");
//Append Plain Text Content
pdfGenerator.appendPlainTextContentToContentBuffer("Here we put some plain text\nin new line other text\n\ttab space other stuff here... with page break after");
//Insert another page break...
pdfGenerator.addPageBreakToContentBuffer();
pdfGenerator.appendHTMLContentToContentBuffer("<style>table{border-collapse:collapse;} td{border:1px solid red;}</style>");
//Create table dynamically...
pdfGenerator.appendHTMLContentToContentBuffer("<table style=\"border:1px solid black;\" ><tr><td>row 1 col 1</td><td>row 1 col 2</td></tr><tr><td style=\"background-color:yellow\">row 2 col 1</td><td>row 2 col 2</td></tr></table> with page break after the table");
//Insert another page break...
pdfGenerator.addPageBreakToContentBuffer();
pdfGenerator.appendHTMLContentToContentBuffer("<h1 style=\"border-bottom:1px solid orange;\">Some other text here and the beginning of the Docx file:</h1>");
....
//Insert another page break and change the Page Header and the Page Footer for this section - after the page break the new Header and Footer will be applied. Without page break the new Header and Footer will be applied from the next new page
pdfGenerator.appendAlternativeHeaderToContentBuffer("<h1 style=\"background-color:yellow;color:blue;\">This is a different Page Header where the Docx file starts</h1>");
pdfGenerator.appendAlternativeFooterToContentBuffer("<i style=\"color:blue;\">This is different footer with page numbers Page: <b>@#SferyxPDFGenerator-PageNumber#@</b> of pages: <b>@#SferyxPDFGenerator-TotalPagesNumber#@</b></i>");
pdfGenerator.addPageBreakToContentBuffer();
.......
//Append MS Word Docx file directly to the content buffer and it will be converted to PDF in the same document
pdfGenerator.appendDocxToContentBuffer(new java.net.URL("file:///c:/test/demo.docx"));
...
//Append Rich Text Format RTF file directly to the content buffer and it will be converted to PDF in the same document
pdfGenerator.appendRTFFileToContentBuffer(new java.net.URL("file:///c:/test/Sample06-1.rtf"));
.....
//Close the content buffer and create the PDF document - there is a possibility to write it to File, OutputStream etc.
pdfGenerator.closeBufferAndGeneratePDF("c:/test/dynamic.pdf","A4", "Portrait");
You can download the full code for these examples from here:
PDFGeneratorDynamicContentDemo.java
and
SampleReportTestPDFGenerator.java and it
is also included in the downloadable demo version of the
Sferyx PDFGenerator Demo.
Generate PDF directly from HTML String content
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); //Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromContent ("This is some text on the first page which can be very long and <b>formatted with <i>any HTML and CSS tags</i></b>", "c:/pdfgenerator-test1.pdf", "A4", "Portrait");
Generate PDF document with two pages and forced page break
The PDF Generator supports forced page breaks and you can insert page breaks through the standard CSS properties like page-break-before:always, page-break-after:always, page-break-inside:never by specifying them inside the document in any HTML element for example in a <p> as shown in the example below:
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); //Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromContent("This is some text on the first page which can be very long and <b>formatted</b>"+"<p style=\"page-break-before:always\"></p>"+"This is some text on the second page which can have <p>paragraphs, very long and <b>formatted</b></p>", "c:/pdfgenerator-test1.pdf","A4","PORTRAIT");
Generate PDF automatically from HTML String with Base64 encoded images
The PDF Generator is capable also of handling in-line images Base64 encoded into the HTML String and they will be embedded into the PDF as expected:
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromContent("<html><body>This is test for <b><span style=\"font-size:14pt; color:#ff0000;\">embedded image </span></b><img src=\"data:image/gif;base64,R0lGODlhFAAUAMT/AO3q6u3n5+ve3.....your...image...here....\" border=\"0\" /></body></html>", "c:/pdfgenerator-test1.pdf","A4","PORTRAIT");
Add File Attachment to the PDF Document
The PDF Generator is capable also of adding File Attachments to the PDF document with a single line of code appending it to any position in the document:
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.openContentBuffer ();
pdfGenerator.appendHTMLContentToContentBuffer ("<h1>This is a test PDF file with Attachments</h1>");
//Adds local file attachment to the generated PDF document with some description.
pdfGenerator.addFileAttachmentToContentBuffer ("<b>Sample report attachment:</b>", new java.net.URL("file:///C:/test/sampleReport.pdf"));
//Adds remote file attachment to the generated PDF document with some description.
pdfGenerator.addFileAttachmentToContentBuffer ("<i>Remote image added as attachment:</i>", new java.net.URL("https://some_host/image.jpg"));
//Close the content buffer and generate the PDF document
pdfGenerator.closeBufferAndGeneratePDF ("c:/test/fileAttachmentsTest.pdf","A4","Portrait");
Creating clickable Image icons for File Attachments
There is also the possibility to specify any image as file attachment icon - the image can be local or remote - it will be handled automatcially. You can do it very easily by simply inserting a hyperlink with a specific class SferyxPDFGeneratorFileAttachment the following way:
pdfGenerator.appendHTMLContentToContentBuffer("<a class=\"SferyxPDFGeneratorFileAttachment\" href=\"file:///absolute_file_attachment_url\"><img src=\"https://sferyx.com/images/logos/fulllogo.jpg\"></a>");
The image will be used to generate a clickable icon for the File Attachment object, while the href attribute will be the file in the File Attachment - it can be any file - it can be local or remote absolute URL and the file will be embedded in the document automatically.
The same way you can generate also a text link for the File Attachment object in the following manner:
pdfGenerator.appendHTMLContentToContentBuffer("<a style=\"text-decoration:none;\" class=\"SferyxPDFGeneratorFileAttachment\" href=\"file:///absolute_file_attachment_url\">This is a file attachment</a>");
If you specify the hyperlink's class to SferyxPDFGeneratorFileAttachment any hyperlink and its href will be converted to a File Attachment - the href reference can be any file - local or remote and it will be embedded automatically into the resulting PDF file.
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.openContentBuffer ();
pdfGenerator.appendHTMLContentToContentBuffer ("<h1>This is a test PDF file with Attachments</h1>");
//Adds local file attachment to the generated PDF document with clickable image icon to open the file attachment.
pdfGenerator.addFileAttachmentToContentBuffer ("<a class=\"SferyxPDFGeneratorFileAttachment\" href=\"file:///absolute_file_attachment_url\"><img src=\"https://sferyx.com/images/logos/fulllogo.jpg\"></a>");
//Adds remote file attachment to the generated PDF document with some text link description.
pdfGenerator.addFileAttachmentToContentBuffer ("<a style=\"text-decoration:none;\" class=\"SferyxPDFGeneratorFileAttachment\" href=\"file:///absolute_file_attachment_url\">This is a file attachment</a>");
//Close the content buffer and generate the PDF document
pdfGenerator.closeBufferAndGeneratePDF ("c:/test/imageIconFileAttachmentsTest.pdf","A4","Portrait");
You can download the full code for these examples from here:
FileAttachmentTestPdfGenerator.java and it
is also included in the downloadable demo version of the
Sferyx PDFGenerator Demo.
Generate PDF automatically from Microsoft Word Docx file content
This method will
generate the PDF file from Docx source using the standard
page format string such as "A4", "Letter" etc. and and save the file
to the specified OutputStream or File and page orientation such as
"Portrait" or "Landscape". You can also set the page margins using
the method setMarginsForStandardPageFormat.
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromDocxURL ("http://your_url_here.docx", destinationFile, "Letter", "Portrait");
Generate PDF automatically from RTF content from file, from InputStream or Base64 encoded String
This method will generate the PDF file from RTF source using the standard page format string such as "A4", "Letter" etc. and and save the file to the specified OutputStream and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromRTFURL ("http://your_url_here.rtf", destinationFile, "Letter", "Portrait");
public void generatePDFFromRTFContentBase64String(String rtfString, OutputStream outputStream,String standardPageFormat, String orientation)
Generates PDF automatically for given RTF base64 encoded string containing Rich Text Format content. It will generate the file using the given standard page format string such as "A4", "Letter" etc. and and will save it the file to the given outputStream and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromRTFContentBase64String ("e1xydGYxXGFuc2lcZGVmZjBccGFyIFRoaXMgaXMgYmFzZTY0ZW5jb2RlZCBSVEYgU3RyaW5nXHBhcn0=", outputStream, "Letter", "Portrait");
public void generatePDFFromRTFContentBase64String(String rtfString, OutputStream outputStream, java.awt.print.PageFormat pageFormat)
Generates PDF automatically for given RTF base64 encoded string containing Rich Text Format content. It will generate the file using the given java.awt.print.PageFormat and and will save it the file to the given outputStream.
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromRTFContentBase64String ("e1xydGYxXGFuc2lcZGVmZjBccGFyIFRoaXMgaXMgYmFzZTY0ZW5jb2RlZCBSVEYgU3RyaW5nXHBhcn0=", outputStream, pageFormat);
public void generatePDFFromRTFInputStream(InputStream inputStream, OutputStream outputStream,String standardPageFormat, String orientation)
Generates PDF automatically for given RTF InputStream containing Rich Text Format content. It will generate the file using the given standard page format string such as "A4", "Letter" etc. and and save the file to the given outputStream and page oriantation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setMarginsForStandardPageFormat (10,10,10,10);
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromRTFInputStream (inputStream, outputStream, "Letter", "Portrait");
public void generatePDFFromRTFInputStream(InputStream inputStream, OutputStream outputStream, java.awt.print.PageFormat pageFormat)
Generates PDF automatically for given RTF InputStream containing Rich Text Format RTF. It generates the file using the given PageFormat and saves it to given OutputStream.
PDFGenerator pdfGenerator=new PDFGenerator();
pdfGenerator.setCharset ("utf-8"); Will embed all fonts and generate PDF/A compliant file and will add support for non-latin languages.
pdfGenerator.generatePDFFromRTFInputStream (inputStream, outputStream, pageFormat);
Generate PDF automatically from HTML content from URL
It will generate the file using the standard page format string such as "A4", "Letter" etc. and and save the file to the specified OutputStream and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
If you need you can use also OutputStream if necessary to save the resulting PDF file:
If you want to
include automatically all TTF fonts inside the PDF/A document
or you are using non western languages or special characters you should use the
following method:
For
generation of documents in Chinese language use the
following setting:
Generates
or Converts HTML to PDF automatically for the URL. It will generate
the file using the java.awt.print.PageFormat and save the file to the
specified OutputStream. You can also set the page margins using the
method setMarginsForStandardPageFormat
Generates or Converts HTML to PDF automatically for the html content. It
will generate the file using the page format string such as "A4", "Letter"
etc. and page orientation such as "Portrait" or
"Landscape" and save the file to
the specified java.io.OutputStream.
Generate PDF automatically for given Plain Text content String to OutputStream
It will generate the file using the given standard page format string such as "A4", "Letter" etc. and and save the file to the given OutputStream and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
pdfGenerator.generatePDFFromPlainTextContent ("your text content here", destinationStream, "Letter", "Portrait");
Generate or convert Plain Text to PDF automatically using java.awt.PageFormat
It will generate the file using the given java.awt.PageFormat object and and saves the file to the specified OutputStream. The page margins are retrieved from the java.awt.print.PageFormat object:
Generate or convert PDF automatically from URL source depending on the file type
Generates or converts PDF automatically for the URL source. It will display a PageFormat dialog and file dialog for saving the generated file
It will display a PageFormat dialog and save the file to the
specified destination
file
Generates or converts PDF
automatically for the URL source. It will generate the file
using the given java.awt.print.PageFormat and save the file to the
given destination file
Generates or converts PDF automatically for the html content. It will generate the file using the given standard page format string such as "A4", "Letter" etc. and and save the file to the given File and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
or
Generate PDF automatically for given Plain Text content String
It will generate the file using the given standard page format string such as "A4", "Letter" etc. and and save the file to the given File and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
Generate PDF automatically from the HTML String content
It will generate the file using the standard page format string such as "A4", "Letter" etc. and and save the file to the specified File and page orientation such as "Portrait" or "Landscape". You can also set the page margins using the method setMarginsForStandardPageFormat
Generate Header for each page in the PDF document
For DOCX and RTF documents the First Page Header and First Page Footer and all Headers and Footers will be retrieved automatically from the document. You can override these headers and footers using the methods here below.
The parameter content can be any plain text or HTML string - it will be parsed and rendered as a header on the pages. You can include any HTML element such as images, tables, colors etc. Keep in mind to adjust the top margin in order to make enough room for the header if necessary. If you wish to include also page numbers it is sufficient to include the @#SferyxPDFGenerator-PageNumber#@ directive anywhere inside your HTML content - it will be parsed automatically and displayed.
Generate Header with Page Numbers for each page in the PDF document
If you need to include also the total page number, then you should use the following directive inside the HTML content: @#SferyxPDFGenerator-TotalPagesNumber#@ - an example of the usage is here below:
Generate First Page Header for the first page of the PDF document
The parameter content can be any plain text or HTML string - it will be parsed and rendered as a header on the pages. You can include any HTML element such as images, tables, colors etc. Keep in mind to adjust the top margin in order to make enough room for the header if necessary. If you wish to include also page numbers it is sufficient to include the @#SferyxPDFGenerator-PageNumber#@ directive anywhere inside your HTML content - it will be parsed automatically and displayed.
Generate First Page Header with Page Numbers and Total Pages in the PDF document
If you need to include also the total page number, then you should use the following directive inside the HTML content: @#SferyxPDFGenerator-TotalPagesNumber#@ - an example of the usage is here below:
Generate Footer for each page in the PDF document
The parameter content can be any plain
text or HTML string - it will be parsed and rendered as a
footer on the pages. You can include any HTML element such
as images, tables, colors etc. Keep in mind to adjust the
bottom margin in order to make enough room for the footer if
necessary. If you wish to include also page numbers it is
sufficient to include the @#SferyxPDFGenerator-PageNumber#@ directive
anywhere inside your HTML content - it will be parsed automatically and
displayed.
Generate Footer with Page Numbers for each page in the PDF document
If you need to include also the total page number, then you should use the following directive inside the HTML content: @#SferyxPDFGenerator-TotalPagesNumber#@ - an example of the usage is here below:
Specifies to automatically discard all pages that do not contain text and are practically a blank pages.
Generate Page Numbers for each page in the PDF document
For DOCX and RTF documents the Page Numbers formatting will be retrieved automatically from the document. You can use the methods below to provide your own formatting when needed.
The parameter content can be any plain text or HTML string - it will be parsed and rendered practically as footer in the pages and will parse the special directive @#SferyxPDFGenerator-PageNumber#@ in order to place the page number inside the custom formatting. You can include any HTML element such as images, tables, colors etc. Keep in mind to adjust the top margin in order to make enough room for the page numbering if necessary.
Avoid breaking tables across the pages when possible in the PDF document
If set to true, the PDFGenerator
will try to not break tables when page break is encountered
if the table is not longer than the page height. The default
value is false
Avoid breaking tables rows across the pages when possible in the PDF document
If set to true, the PDFGenerator
will try to not break table rows when page break is encountered
if the table row is not longer than the page height. The default
value is false
Avoid breaking lists across the pages when possible in the PDF document
If set to true, the PDFGenerator
will try to not break lists when page break is encountered
if the list is not longer than the page height. The default
value is false
Insert Forced and Manual Page Breaks in the PDF document
Further you can manage the page breaks through the standard
CSS properties
page-break-before:always,
page-break-after:always, page-break-inside:never, by
specifying them inside the document for example in a <div> like this:
or inside tables:
or inside paragraphs:
Command line arguments for the PDFGenerator.jar file
You can easily execute the PDFGenerator.jar from the command line and perform document conversions without writing code using the available command line arguments as follows:
java -jar PDFGenerator.jar absolute_url destination_file [page_format] [page_orientation] [character_set]
Example:
C:\test>java -jar "C:\test\PDFGenerator.jar" http://your_url_here
c:/test/test-html.pdf A4 Portrait utf-8
Package sferyx. administration. pdfgenerator
Fully featured easy-to-use PDF Generator from HTML and plain text content
Class Summary |
|
---|---|
CustomPageFormat | This class provides a simplified way for assigning standard page formats |
PDFGenerator | General purpose PDF Generator - this class provides fully featured generation of PDF files from various sources containing HTML, Word Docx, images or plain text content. |
PDFGeneratorOracleBean | This class has been optimized to deliver correct generation of Rich Text content for Oracle Reports and provide general PDF generation capabilities for OracleForms. |
Method Summary |
|
---|---|
void |
addFileAttachmentToContentBuffer(String htmlContent, java.net.URL fileAttachment)
Adds file attachment with the specified content to describe the attached file - it can be any HTML formatted string. This method should be used in conjuction with openContentBuffer() and closeBufferAndGeneratePDF(). |
void |
addPageBreakToContentBuffer()
Adds a page break to the content buffer and all the content appended after that will be on the next page |
void |
appendAlternativeHeaderToContentBuffer(java.lang.String content)
Sets alternative Page Header to be used for the pages to follow - it can contain any HTML formatting. This Page Header will be active until new one is set. If you want to create new page with new Page Header, set the Page Header first using this method and after that add page break. This should be used in conjunction with openContentBuffer() and closeBufferAndGeneratePDF(). |
void |
appendAlternativeFooterToContentBuffer(java.lang.String content)
Sets alternative Page Footer to be used for the pages to follow - it can contain any HTML formatting. This Page Footer will be active until new one is set. If you want to create new page with new Page Footer, set the Page Footer first using this method and after that add page break. This should be used in conjunction with openContentBuffer() and closeBufferAndGeneratePDF(). |
void |
appendDocxToContentBuffer(java.io.File file)
Appends the whole content of the Docx file from the File to the content buffer |
void |
appendDocxToContentBuffer(java.net.URL file)
Appends the whole content of the Docx file from the given URL to the content buffer |
void |
appendHTMLContentToContentBuffer(java.lang.String content)
Appends new string to existing content buffer. |
void |
appendPlainTextContentToContentBuffer(java.lang.String content)
Appends the Plain Text string content to the content buffer |
void |
appendRTFBase64EncodedStringToContentBuffer(java.lang.String base64EncodedRTFString)
Appends RTF content encoded as Base64 string to the content buffer |
void |
appendRTFFileToContentBuffer(java.io.InputStream is)
Appends RTF file from the InputStream to the content buffer |
void |
appendRTFFileToContentBuffer(java.net.URL file)
Appends RTF file from the URL to the content buffer |
void |
clearContentBuffer()
Closes the content buffer and clears the content |
void |
closeBufferAndGeneratePDF(java.io.OutputStream destinationStream,
java.awt.print.PageFormat pageFormat)
Generates pdf automatically for given content buffer created prevuiously by using openContentBuffer() and appendContentXXX() methods. |
void |
closeBufferAndGeneratePDF(java.io.OutputStream destinationStream,
java.lang.String standardPageFormat,
java.lang.String orientation)
Closes the existing content buffer and inserts its content inside the editor. |
void |
closeBufferAndGeneratePDF(java.lang.String destinationFile,
java.lang.String standardPageFormat,
java.lang.String orientation)
Generates pdf automatically for given content buffer created prevuiously by using openContentBuffer() and appendContentXXX() methods. |
void |
generatePDFFromContent (String htmlContent, java.io.OutputStream destinationStream,
String standardPageFormat,
String orientation) Generates PDF automatically for given html content. |
void |
generatePDFFromContent (String htmlContent,
java.io.OutputStream destinationStream, java.awt.print.PageFormat pageFormat) Generates PDF automatically for given html content. |
void |
generatePDFFromContent (String htmlContent,
String destinationFile, String standardPageFormat,
String orientation) Generates PDF automatically for given html content. |
void |
generatePDFFromPlainTextContent (String content,
java.io.OutputStream destinationStream,
String standardPageFormat,
String orientation) Generates pdf automatically for given text content. |
void |
generatePDFFromPlainTextContent (String content,
java.io.OutputStream destinationStream, java.awt.print.PageFormat pageFormat) Generates pdf automatically for given text content. |
void |
generatePDFFromPlainTextContent (String content,
String destinationFile, String standardPageFormat,
String orientation) Generates PDF automatically for given text content. |
void |
generatePDFFromURL (String sourceURL)
Generates PDF automatically for given URL source. |
void |
generatePDFFromURL (String sourceURL,
java.io.File destinationFile,
java.awt.print.PageFormat pageFormat) Generates PDF automatically for given URL source. |
void |
generatePDFFromURL (String sourceURL,
java.io.OutputStream destinationStream,
java.awt.print.PageFormat pageFormat) Generates pdf automatically for given URL source. |
void |
generatePDFFromURL(String sourceURL,
String destinationFile) Generates PDF automatically for given URL source. |
void |
generatePDFFromURL(String sourceURL,
String destinationFile,
java.awt.print.PageFormat pageFormat) Generates PDF automatically for given URL source. |
void |
generatePDFFromURL (String sourceURL,
String destinationFile, String standardPageFormat,
String orientation) Generates PDF automatically for given URL source. |
void |
public void
generatePDFFromRTFContentBase64String(String
rtfString, OutputStream outputStream,String
standardPageFormat, String orientation)
- Generates PDF automatically for given RTF base64
encoded string containing Rich Text Format content.
It will generate the file using the given standard
page format string such as "A4", "Letter" etc. and
save the file to the given outputStream and page
orientation such as "Portrait" or "Landscape". You
can also set the page margins using the method
setMarginsForStandardPageFormat |
void |
public void
generatePDFFromRTFContentBase64String(String
rtfString, OutputStream outputStream,
java.awt.print.PageFormat pageFormat)
- Generates PDF automatically for given RTF base64
encoded string containing Rich Text Format content.
It will generate the file using the given
java.awt.print.PageFormat pageFormat and save the
file to the given outputStream. |
void |
generatePDFFromRTFInputStream(InputStream
inputStream, OutputStream outputStream,String
standardPageFormat, String orientation)
- Generates PDF automatically for given RTF
InputStream containing Rich Text Format content. It
will generate the file using the given standard page
format string such as "A4", "Letter" etc. and and
save the file to the given outputStream and page
orientation such as "Portrait" or "Landscape". You
can also set the page margins using the method
setMarginsForStandardPageFormat. |
void |
generatePDFFromRTFInputStream(InputStream
inputStream, OutputStream outputStream,
java.awt.print.PageFormat pageFormat)
- Generates PDF automatically for given RTF
InputStream containing Rich Text Format RTF. It
generate the file using the given PageFormat and
save to given OutputStream. |
void |
public void
generatePDFFromDocxURL (String
sourceURL, String destinationFile,String
standardPageFormat, String orientation)
throws FileNotFoundException,
java.net.MalformedURLException -
Generates pdf automatically for given URL source
containing a MS Word Docx file. It will generate the
file using the given standard page format string
such as "A4", "Letter" etc. and and save the file to
the given File and page orientation such as
"Portrait" or "Landscape". You can also set the page
margins using the method
setMarginsForStandardPageFormat |
void |
public void
generatePDFFromDocxURL (String
sourceURL, File destinationFile,
java.awt.print.PageFormat pageFormat)
throws FileNotFoundException,
java.net.MalformedURLException -
Generates pdf automatically for given URL source
containing a MS Word Docx file. It generate the file
using the given PageFormat and save the file to the
given File |
void |
public void
generatePDFFromRTFURL (String
sourceURL, String destinationFile,String
standardPageFormat, String orientation)
throws FileNotFoundException,
java.net.MalformedURLException -
Generates pdf automatically for given URL source
containing Rich Text Format RTF file. It will
generate the file using the given standard page
format string such as "A4", "Letter" etc. and and
save the file to the given File and page orientation
such as "Portrait" or "Landscape". You can also set
the page margins using the method
setMarginsForStandardPageFormat |
void |
public void
generatePDFFromRTFURL (String
sourceURL, File destinationFile,
java.awt.print.PageFormat pageFormat)
throws FileNotFoundException,
java.net.MalformedURLException -
Generates pdf automatically for given URL source
containing Rich Text Format RTF file. It generate
the file using the given PageFormat and save the
file to the given File |
void |
|
void |
setMarginsForStandardPageFormat (int top, int bottom,
int left, int right) Sets the margins to be used when the page format is set using the standard string like "A4" or "Letter" - this values will not be considered it PageFormat object is used to set the page format |
void |
setPDFAComplianceEnabled(boolean enabled) Sets the PDF/A standard compliance - the default is true - to generate PDF/A compliant files you have to enable also the embedding of all fonts inside the document with setCharset("utf-8") |
boolean |
isPDFAComplianceEnabled() Returns whether the PDF/A standard compliance is enabled or not. |
void |
setScaleToFitWidth (boolean scale) Indicates whether to rescale the page in order to fit the given PageFormat - the default is true |
void |
setHeader (String
content) Generates the
header for each page in the document. The parameter
content can be any plain text or HTML string - it
will be parsed and rendered as a header on the
pages. You can includes any HTML element such as
images, tables, colors etc. Keep in mind to adjust
the top margin in order to make enough room for the
header if necessary. If you wish to include also
page numbers it is sufficient to include the
@#SferyxPDFGenerator-PageNumber#@ directive anywhere
inside your HTML content - it will be parsed
automatically and displayed. If you need to include
also the total page number, then you should use the
following directive inside the HTML content:
@#SferyxPDFGenerator-TotalPagesNumber#@ - see the
provided examples for major details. |
void |
setFirstPageHeader (String
content) Generates the
first page header for the document. The parameter
content can be any plain text or HTML string - it
will be parsed and rendered as a header on the
pages. You can includes any HTML element such as
images, tables, colors etc. Keep in mind to adjust
the top margin in order to make enough room for the
header if necessary. If you wish to include also
page numbers it is sufficient to include the
@#SferyxPDFGenerator-PageNumber#@ directive anywhere
inside your HTML content - it will be parsed
automatically and displayed. If you need to include
also the total page number, then you should use the
following directive inside the HTML content:
@#SferyxPDFGenerator-TotalPagesNumber#@ - see the
provided examples for major details. |
void |
setFooter (String
content) Generates the footer for each page in the document. The parameter content can be any plain text or HTML string - it will be parsed and rendered as a footer on the pages. You can includes any HTML element such as images, tables, colors etc. Keep in mind to adjust the bottom margin in order to make enough room for the footer if necessary. If you wish to include also page numbers it is sufficient to include the @#SferyxPDFGenerator-PageNumber#@ directive anywhere inside your HTML content - it will be parsed automatically and displayed. If you need to include also the total page number, then you should use the following directive inside the HTML content: @#SferyxPDFGenerator-TotalPagesNumber#@ - see the provided examples for major details. |
void |
setDiscardEmptyPages (boolean discard)
Specifies to automatically discard all pages that do
not contain text and are practically a blank pages. |
void |
setTTFFontFolderName (String folderName)
- sets the absolute path to the
folder which contains the TrueType fonts to be used
when generating the PDF documents. Please make sure
that this feature is enabled by setting the
character set to UTF-8 |
String |
getTTFFontFolderName()
- returns the name of the True Type fonts
if previously set. Otherwise it will return null and
for the generation of the PDF files will be used the
system font folders. |
void |
setDoNotBreakListsAcrossPages (boolean
disablebreak) - if set to true, the
PDFGenerator will try to not break tables when page
break is encountered if the table is not longer than
the page height. |
void |
setDoNotBreakTablesAcrossPages (boolean
disablebreak) - if set to true, the
PDFGenerator will try to not break tables when page
break is encountered if the table is not longer than
the page height. |
boolean |
isDoNotBreakListsAcrossPages()
returns whether the PDFGenerator should not allow to
the lists to break across the pages |
boolean |
isDoNotBreakTablesAcrossPages()
returns whether the PDFGenerator should not allow to
the tables to break across the pages |
void |
setGeneratePageNumbers (boolean generate, String text)
Generates page numbers for each page in the document. The parameter content can be any plain text or HTML string - it will be parsed and rendered practically as footer in the pages and will parse the special directive "@#SferyxPDFGenerator-PageNumber#@" in order to place the page number inside the custom formatting. You can includes any HTML element such as images, tables, colors etc. Keep in mind to adjust the top margin in order to make enough room for the page numbering if necessary. Example: <p align=center style="padding-top:30px; border-top:1px solid #0000FF;"><font face="arial" color="blue">Page: @#SferyxPDFGenerator-PageNumber#@</font></p> |
Customers
Sferyx customer base counts more than 1000 corporate customers and institutions from over 40 countries and different industrial sectors as follows: Media and publishing companies, Internet Service Providers, Research Labs, Fortune 500 companies, Universities, Colleges and Schools, Software Developers, Content Management Systems developers, Web design agencies.
More than 1000 corporate customers, among them:
|
Home
| Users Manual | License | Demo
& Download
Copyright © 2001-2024 Sferyx
Srl. All rights reserved. Sferyx and the Sferyx logo are registered trademarks
of Sferyx Srl. http://www.sferyx.com