Konversikan Dokumen menjadi PDF
Kemampuan untuk mengonversi dokumen dengan mudah dan andal dari satu format ke format lainnya adalah fitur utama Aspose.Words. Salah satu format paling populer untuk mengonversi adalah PDF - format tata letak tetap, yang mempertahankan tampilan asli dokumen selama renderingnya di berbagai platform. Istilah “rendering” digunakan dalam Aspose.Words untuk menggambarkan proses pengubahan dokumen menjadi format file yang diberi paginasi atau memiliki konsep pages.
Konversikan Dokumen Word menjadi PDF
Konversi dari Word ke PDF adalah proses yang agak rumit yang memerlukan beberapa tahap perhitungan. mesin tata letak Aspose.Words meniru cara kerja mesin tata letak halaman Microsoft Word, membuat dokumen keluaran PDF terlihat sedekat mungkin dengan apa yang dapat Anda lihat di Microsoft Word.
Dengan Aspose.Words, Anda dapat mengonversi dokumen secara terprogram dari format DOC atau DOCX menjadi PDF tanpa menggunakan Microsoft Office. Artikel ini menjelaskan cara melakukan konversi ini.
Mengubah DOCX atau DOC menjadi PDF
Mengonversi dari format dokumen DOC atau DOCX ke format PDF dalam Aspose.Words sangat mudah dan dapat dilakukan hanya dengan dua baris kode yang:
- Muat dokumen Anda ke dalam objek Document menggunakan salah satu konstruktornya dengan menentukan nama dokumen dengan ekstensi formatnya.
- Panggil salah satu metode Document.Save pada objek Document dan tentukan format keluaran yang diinginkan sebagai PDF dengan memasukkan nama file dengan".PDF" ekstensi.
Contoh kode berikut menunjukkan cara mengonversi dokumen dari DOCX menjadi PDF menggunakan metode Save
:
// 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"); |
Anda dapat mengunduh file templat contoh ini dari Aspose.Words GitHub.
Terkadang perlu untuk menentukan opsi tambahan, yang dapat memengaruhi hasil penyimpanan dokumen sebagai PDF. Opsi ini dapat ditentukan dengan menggunakan kelas PdfSaveOptions, yang berisi properti yang menentukan bagaimana output PDF akan ditampilkan.
Perhatikan bahwa dengan teknik yang sama, Anda dapat mengonversi dokumen format tata letak alur apa pun ke format PDF.
Konversikan ke Standar PDF yang Berbeda
Aspose.Words menyediakan pencacahan PdfCompliaceuntuk mendukung konversi DOC atau DOCX menjadi berbagai standar format PDF (seperti PDF 1.7, PDF 1.5, dll.).
Contoh kode berikut menunjukkan cara mengonversi dokumen menjadi PDF 1.7 menggunakan PdfSaveOptions dengan kepatuhan ke 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); |
Konversikan Gambar menjadi PDF
Mengonversi ke PDF tidak dibatasi oleh format dokumen Microsoft Word. Format apa pun yang didukung oleh Aspose.Words, termasuk yang dibuat secara terprogram, juga dapat dikonversi ke PDF. Misalnya, kita dapat mengonversi gambar satu halaman, seperti JPEG, PNG, BMP, EMF, atau WMF, serta gambar multi-halaman, seperti TIFF dan GIF, hingga PDF.
Contoh kode berikut menunjukkan cara mengonversi gambar JPEG dan TIFF menjadi 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); | |
} |
Agar kode ini berfungsi, Anda perlu menambahkan referensi ke Aspose.Words, Java.awt.gambar, dan javax.paket kelas imageio ke proyek Anda.
Kurangi Ukuran Keluaran PDF
Saat menyimpan ke PDF, Anda dapat menentukan apakah Anda ingin mengoptimalkan output. Untuk melakukan ini, Anda perlu menyetel flag OptimizeOutput ke true, dan kemudian kanvas bersarang yang berlebihan dan kanvas kosong akan dihapus, mesin terbang tetangga dengan format yang sama akan digabungkan.
Contoh kode berikut menunjukkan cara mengoptimalkan output:
// 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); |
Lihat Juga
- Artikel tersebut Rendering untuk informasi selengkapnya tentang format halaman tetap dan tata letak alur
- Artikel tersebut Mengubah ke Format halaman Tetap untuk informasi lebih lanjut tentang tata letak halaman
- Artikel tersebut Tentang Opsi Rendering Saat Mengubah ke PDF untuk informasi lebih lanjut tentang penggunaan kelas
PdfSaveOptions