Working with Document in PS file | Java
Create PS Document
Aspose.Page for Java offers two constructors in order to create PsDocument class. The following code snippet creates a 1-paged PS document:
1//Create output stream for PostScript document
2FileOutputStream outPsStream = new FileOutputStream(dataDir + "document.ps");
3//Create save options with A4 size
4PsSaveOptions options = new PsSaveOptions();
5
6//If you want to aassign page size other than A4, set page size in options
7options.setPageSize(PageConstants.getSize(PageConstants.SIZE_A4, PageConstants.ORIENTATION_PORTRAIT));
8//If you want to aassign page margins other than empty, set page margins in options
9options.setMargins(PageConstants.getMargins(PageConstants.MARGINS_ZERO));
10//If you plan to use fonts that located in non system folders, set additional fonts folders in options
11options.setAdditionalFontsFolders(new String[] { FONTS_FOLDER });
12
13//Set variable that indicates if resulting PostScript document will be multipaged
14boolean multiPaged = false;
15
16// Create new multipaged PS Document with one page opened
17PsDocument document = new PsDocument(outPsStream, options, multiPaged);
18
19//Close current page
20document.closePage();
21//Save the document
22document.save();
If PS document is planning to be multi-paged, set multiPaged variable to true.
Another constructor allows creating PsDocument object with a defined number of pages:
1//Create save options with A4 size
2PsSaveOptions options = new PsSaveOptions();
3//Create output stream for PostScript document
4FileOutputStream outPsStream = new FileOutputStream(dataDir + "CreateDocument_outPS.ps");
5
6// Create new multipaged PS Document with 2 pages. These two pages are not created. It must be added by addPage() method.
7PsDocument document = new PsDocument(outPsStream, options, 2);
8
9//Close current page
10document.closePage();
11//Save the document
12document.save();
See working with PS document in .NET.
Let’s look at the PsSaveOptions class that encapsulates possible options helping to create the right PostScript document.
SaveFormat specifies an output format of documents. Can be PS or EPS. In Aspose.Page library differences between these two formats are reflected only in PostScript comments and a file extension. Also in accordance with the EPS file specification EPS files should be 1-paged. PS format is used by default.
PageSize specifies the size of the pages in the PS document. However, we can assign different page sizes for every page if it is required. The page size can be obtained from PageConstants class like in following example:
1options.setPageSize(PageConstants.getSize(PageConstants.SIZE_International, PageConstants.ORIENTATION_PORTRAIT));
The default page size is “A4” in “Portrait” orientation.
- Margins specifies blank fields between the page boundaries and left, up, right, and bottom edges of the page content. It can be obtained from PageConstants class.
1options.setMargins(PageConstants.getMargins(PageConstants.MARGINS_SMALL)); // 20 points for each margin
Default margins are “ZERO” (0, 0, 0, 0).
- BackGroundColor specifies a color of page’s background. Can be assigned as:
1options.setBackgroundColor(new Color(211, 8, 48));
or:
1options.setBackgroundColor(Color.YELLOW);
Default value is “null” that means no background.
EmbedFonts controls the behavior of PsDocument while saving it to the file. If “false”, used fonts will not be written in the PS file. In this case, the PostScript interpreter will throw an error if the used font cannot be found in system folders on the target host.
EmbedFontsAs controls the way how fonts will be embedded in the PS file. At this moment two ways work TrueType and Type3 font formats. The value can be set with help of FontConstants class like the following:
1options.setEmbedFontsAs(FontsConstants.EMBED_FONTS_TYPE3);
The default value is “TrueType”.
JpegQualityLevel specifies a level of compression/quality of images in the resulting PS document. The more quality is required the less compression will be and vice versa. Minimal quality is 0, and maximal - 100. The default is 75.
AdditionalFontsFolder specifies locations where to find fonts. System font folders are always included by default.
Debug allows outputting debug information to the console. The default value is false.
You can download examples and data files from GitHub.