Een document omzetten naar PDF

De mogelijkheid om gemakkelijk en betrouwbaar documenten te converteren van het ene formaat naar het andere is een belangrijke functie van Aspose.Words. Een van de meest populaire formaten voor het omzetten is PDF een vaste-layout formaat, die het oorspronkelijke uiterlijk van een document tijdens de weergave op verschillende platforms behoudt. De term “rendering” wordt gebruikt in Aspose.Words beschrijven van het proces van het omzetten van een document in een bestandsformaat dat wordt gepagineerd of heeft het concept van pagina’s.

Een Word-document omzetten naar PDF

Conversie van Word naar PDF is een vrij complex proces dat verschillende fasen van berekening vereist. Aspose.Words lay-out motor bootst de manier Microsoft WordDe pagina lay-out engine werkt, waardoor PDF-uitvoerdocumenten zo dicht mogelijk bij wat je kunt zien in Microsoft Word.

Met Aspose.Words u kunt programmatisch converteren van een document van DOC of DOCX-formaat naar PDF zonder gebruik Microsoft Kantoor. Dit artikel legt uit hoe u deze conversie kunt uitvoeren.

Het omzetten van DOCX of DOC naar PDF

Converteren van het DOC- of DOCX-documentformaat naar het PDF-formaat in Aspose.Words is zeer gemakkelijk en kan worden bereikt met slechts twee regels van code die:

  1. Uw document laden in a Document object met behulp van een van de constructeurs door het specificeren van de documentnaam met de formatextensie.
  2. Roep een van de Document.Save methoden op de Document object en specificeer het gewenste uitvoerformaat als PDF door een bestandsnaam in te voeren met de extensie PDF.

De volgende code voorbeeld laat zien hoe u een document van DOCX in PDF met behulp van de Save methode:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document(getMyDir() + "Document.docx");
doc.save(getArtifactsDir() + "BaseConversions.DocxToPdf.pdf");

U kunt het sjabloonbestand van dit voorbeeld downloaden van Aspose.Words GitHub.

Naar verschillende PDF converteren Normen

Aspose.Words levert de PdfCompliaceLijst ter ondersteuning van de omzetting van DOC of DOCX in verschillende PDF-formaatstandaarden (zoals PDF 1.7, PDF 1.5, enz.).

Het volgende voorbeeld van code toont hoe een document naar PDF 1.7 te converteren met behulp van PdfSaveOptions met inachtneming van PDF17:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document(getMyDir() + "Rendering.docx");
PdfSaveOptions saveOptions = new PdfSaveOptions(); { saveOptions.setCompliance(PdfCompliance.PDF_17); }
doc.save(getArtifactsDir() + "WorkingWithPdfSaveOptions.ConversionToPdf17.pdf", saveOptions);

Afbeeldingen omzetten naar PDF

Converteren naar PDF is niet beperkt door Microsoft Word documentformaten. Elk formaat ondersteund door Aspose.Words, inclusief programmatisch gemaakt, kan ook worden omgezet naar PDF. We kunnen bijvoorbeeld single-page afbeeldingen, zoals JPEG, PNG, BMP, EMF, of WMF, maar ook multi-page afbeeldingen, zoals TIFF en GIF, omzetten naar PDF.

Het volgende voorbeeld van code laat zien hoe je JPEG- en TIFF-afbeeldingen kunt converteren naar PDF:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
convertImageToPDF(getImagesDir() + "Logo.jpg", getArtifactsDir() + "BaseConversions.JpgToPdf.pdf");
convertImageToPDF(getImagesDir() + "Transparent background logo.png", getArtifactsDir() + "BaseConversions.PngToPdf.pdf");
convertImageToPDF(getImagesDir() + "Windows MetaFile.wmf", getArtifactsDir() + "BaseConversions.WmfToPdf.pdf");
convertImageToPDF(getImagesDir() + "Tagged Image File Format.tiff", getArtifactsDir() + "BaseConversions.TiffToPdf.pdf");
convertImageToPDF(getImagesDir() + "Graphics Interchange Format.gif", getArtifactsDir() + "BaseConversions.GifToPdf.pdf");
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
/**
* Converts an image to PDF using Aspose.Words for Java.
*
* @param inputFileName File name of input image file.
* @param outputFileName Output PDF file name.
* @throws Exception
*/
private void convertImageToPDF(String inputFileName, String outputFileName) throws Exception {
// Create Aspose.Words.Document and DocumentBuilder.
// The builder makes it simple to add content to the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Load images from the disk using the appropriate reader.
// The file formats that can be loaded depends on the image readers available on the machine.
ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
ImageReader reader = ImageIO.getImageReaders(iis).next();
reader.setInput(iis, false);
// Get the number of frames in the image.
int framesCount = reader.getNumImages(true);
// Loop through all frames.
for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
// Insert a section break before each new page, in case of a multi-frame image.
if (frameIdx != 0)
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
// Select active frame.
BufferedImage image = reader.read(frameIdx);
// We want the size of the page to be the same as the size of the image.
// Convert pixels to points to size the page to the actual image size.
PageSetup ps = builder.getPageSetup();
ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));
// Insert the image into the document and position it at the top left corner of the page.
builder.insertImage(
image,
RelativeHorizontalPosition.PAGE,
0,
RelativeVerticalPosition.PAGE,
0,
ps.getPageWidth(),
ps.getPageHeight(),
WrapType.NONE);
}
if (iis != null) {
iis.close();
reader.dispose();
}
doc.save(outputFileName);
}

Om deze code te laten werken, moet je referenties toevoegen aan Aspose.Words, Java.awt.image, en javax. afbeeldingsklasse pakketten voor uw project.

PDF verkleinen Uitvoergrootte

Bij het opslaan naar PDF kunt u aangeven of u de uitvoer wilt optimaliseren. Om dit te doen, moet u de OptimizeOutput vlag naar true, en dan zal overbodig geneste doeken en lege doeken worden verwijderd, buurman glyphs met dezelfde opmaak zal worden samengevoegd.

Het volgende voorbeeld van code laat zien hoe u de output kunt optimaliseren:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document(getMyDir() + "Rendering.docx");
PdfSaveOptions saveOptions = new PdfSaveOptions(); { saveOptions.setOptimizeOutput(true); }
doc.save(getArtifactsDir() + "WorkingWithPdfSaveOptions.OptimizeOutput.pdf", saveOptions);

Zie ook