Převést dokument do PDF
Schopnost snadno a spolehlivě převést dokumenty z jednoho formátu do druhého je klíčovým rysem Aspose.Words. Jedním z nejpopulárnějších formátů pro převod je formát PDF díry, který zachovává původní vzhled dokumentu během jeho renderování na různých platformách. Výraz “rendering” se používá v Aspose.Words popis procesu přeměny dokumentu na formát souboru, který je paginován nebo má koncept stránek.
Převést slovní dokument do PDF
Převod z Word do PDF je poměrně složitý proces, který vyžaduje několik fází výpočtu. Aspose.Words rozložení motoru napodobuje způsob Microsoft WordPage layout engine funguje, takže PDF výstupní dokumenty vypadají co nejblíže tomu, co můžete vidět v Microsoft Word.
S Aspose.Words můžete programově převést dokument z DOC nebo DOCX formátu do PDF bez použití Microsoft Kancelář. Tento článek vysvětluje, jak provést tuto konverzi.
Převod DOCX nebo DOC do PDF
Převod z formátu dokumentu DOC nebo DOCX do formátu PDF ve Aspose.Words je velmi snadné a lze dosáhnout pouze dvěma řádky kódu, že:
- Načíst svůj dokument do Document objekt pomocí jednoho z jeho konstruktérů upřesněním názvu dokumentu s jeho formátem rozšíření.
- Invoke jeden z Document.Save metody Document objekt a zadejte požadovaný výstupní formát jako PDF zadáním názvu souboru s příponou
Následující příklad kódu ukazuje, jak převést dokument z DOCX do PDF pomocí Save
metoda:
// 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"); |
Můžete si stáhnout soubor šablony tohoto příkladu z Aspose.Words GitHub.
Někdy je nutné upřesnit další možnosti, které mohou ovlivnit výsledek uložení dokumentu jako PDF. Tyto možnosti lze určit použitím PdfSaveOptions třída obsahující vlastnosti, které určují, jak se zobrazí výstup PDF.
Všimněte si, že se stejnou technikou můžete převést libovolný formát formátu Flow-layout do formátu PDF.
Převést do různých PDF Normy
Aspose.Words poskytuje PdfKompliacepočet podporující konverzi DOC nebo DOCX na různé standardy formátu PDF (např. PDF 1.7, PDF 1.5 atd.).
Následující příklad kódu ukazuje, jak převést dokument na PDF 1.7 pomocí PdfSaveOptions podle 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); |
Převést obrázky do PDF
Převod do PDF není omezen Microsoft Word formáty dokumentů. Jakýkoli formát podporovaný Aspose.Words, včetně programově vytvořené, lze také převést na PDF. Například, můžeme převést jednostránkové obrázky, jako jsou JPEG, PNG, BMP, EMF, nebo WMF, stejně jako vícestránkové obrázky, jako jsou TIFF a GIF, do PDF.
Následující příklad kódu ukazuje, jak převést JPEG a TIFF obrázky do 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); | |
} |
Aby tento kód fungoval, musíte přidat odkazy na Aspose.Words, Java.awt.image, a javax. balíčky třídy imageio do vašeho projektu.
Snížit PDF Velikost výstupu
Při ukládání do PDF můžete určit, zda chcete optimalizovat výstup. K tomu je třeba nastavit OptimizeOutput vlajka true, a pak budou odstraněna přebytečná hnízditá plátna a prázdné plátna, sousede. glyphse stejným formátováním bude konkatenován.
Následující příklad kódu ukazuje, jak optimalizovat výstup:
// 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); |
Viz také
- Ten článek. Renderování pro více informací o formátech pevných stránek a průtoků
- Ten článek. Převod na stránky pro více informací o rozložení stránky
- Ten článek. Upřesnit možnosti denderování při převodu do PDF pro více informací o použití
PdfSaveOptions
třída