您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么使用Aspose.words在Java中將Word和圖像轉換為PDF”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用Aspose.words在Java中將Word和圖像轉換為PDF”吧!
從Word到PDF的轉換是一個相當復雜的過程,需要幾個計算階段。Aspose.Words布局引擎模仿了Microsoft Word的頁面布局引擎的工作方式,使PDF輸出文檔看起來與Microsoft Word中所看到的盡可能接近。使用Aspose.Words,您可以通過編程方式將文檔從DOC或DOCX格式轉換為PDF,而無需使用Microsoft Office。本文介紹了如何執行此轉換。
請注意,文檔中的頁數會影響轉換時間。
將DOC或DOCX轉換為PDF
在Aspose.Words中從DOC或DOCX文檔格式轉換為PDF格式非常容易,只需兩行代碼即可完成:
通過使用擴展名指定文檔名稱,使用其構造函數之一將文檔加載到 Document對象中。
調用Document對象上的Document.Save方法 之一,并通過輸入擴展名為“ .PDF”的文件名將所需的輸出格式指定為PDF。
下面的代碼示例演示如何使用Save方法將文檔從DOCX轉換為PDF:
// Load the document from disk. Document doc = new Document(dataDir + "Template.doc"); // Save the document in PDF format. dataDir = dataDir + "output.pdf"; doc.save(dataDir);
請注意,使用相同的技術,可以將任何流程布局格式的文檔轉換為PDF格式。
轉換為各種PDF標準
Aspose.Words提供 PdfCompliace 枚舉以支持將DOC或DOCX轉換為各種PDF格式標準(例如PDF 1.7,PDF 1.5等)。下面的代碼示例演示如何將文檔轉換為PDF使用1.7 PdfSaveOptions 與符合PDF17:
// The path to the documents directory. Document originalDoc = new Document(dataDir + "Document.docx"); // Provide PDFSaveOption compliance to PDF17 // or just convert without SaveOptions PdfSaveOptions pso = new PdfSaveOptions(); pso.setCompliance(PdfCompliance.PDF_17); originalDoc.save(dataDir + "Output.pdf", pso);
轉換為PDF不受Microsoft Word文檔格式的限制。Aspose.Words支持的任何格式,包括以編程方式創建的格式,都可以轉換為PDF。例如,我們可以將單頁圖像(例如JPEG,PNG,BMP,EMF或WMF)以及多頁圖像(例如TIFF和GIF)轉換為PDF。
下面的代碼示例演示如何將JPEG和TIFF圖像轉換為PDF:
//將指定格式的圖像轉換為PDF。 ConvertImageToPDF(dataDir + “ Test.jpg ”,dataDir + “ TestJpg_out.pdf ”); ConvertImageToPDF(dataDir + “ Test.tiff ”,dataDir + “ TestTif_out.pdf ”);
/** | |
* 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 | |
*/ | |
public static 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); | |
} |
到此,相信大家對“怎么使用Aspose.words在Java中將Word和圖像轉換為PDF”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。