Конвертиране на документ в PDF
Възможността лесно и надеждно да конвертирате документи от един формат в друг е ключова характеристика на Aspose.Words. Един от най-популярните формати за конвертиране е PDF гол формат, който запазва първоначалния вид на документ по време на представянето му на различни платформи. Терминът “намаляване” се използва в Aspose.Words да опише процеса на преобразуване на документ във формат на файл, който е въплътен или има концепцията за страници.
Конвертиране на документ с думи в PDF
Преобразуването от Word на PDF е доста сложен процес, който изисква няколко етапа на изчисление. Aspose.Words монтаж на двигателя имитира начина, по който Microsoft Word по-близо до това, което можете да видите Microsoft Word.
С Aspose.Words Можете програмно да конвертирате документ от формат DOC или DOCX в PDF без да използвате Microsoft Офисът. Тази статия обяснява как да се извърши това преобразуване.
Конвертиране на DOCX или DOC в PDF
Преобразуване от DOC или DOCX формат на документ в PDF формат в Aspose.Words е много лесно и може да се постигне само с два реда код, който:
- Зареждане на документа в a Document обект с помощта на един от неговите конструктори, като се посочва името на документа с неговото разширение формат.
- Призовете един от Document.Save методи за Document обект и зададете желания формат на изхода като PDF чрез въвеждане на име на файл с разширението PDF.
Следният пример за код показва как да конвертирате документ от DOCX в PDF с помощта на 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"); |
Можете да изтеглите шаблонния файл на този пример от Aspose.Words GitHub.
Понякога е необходимо да се определят допълнителни опции, които могат да повлияят на резултата от запазване на документ като PDF. Тези опции могат да бъдат посочени чрез използването на PdfSaveOptions клас, съдържащ свойства, които определят как ще бъде показан изходът от PDF.
Имайте предвид, че със същата техника можете да конвертирате всеки документ във формат PDF.
Конвертиране в различен PDF Стандарти
Aspose.Words осигурява PdfComplaceизброяване в подкрепа на преобразуването на DOC или DOCX в различни PDF форматови стандарти (като PDF 1.7, PDF 1.5 и др.).
Следният пример за код показва как да конвертирате документ в PDF 1.7 с помощта на PdfSaveOptions със съответствие с 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); |
Конвертиране на изображения в PDF
Преобразуването в PDF не се ограничава от Microsoft Word формат на документите. Всеки формат, поддържан от Aspose.Words, включително програмично създаден, може да бъде преобразуван в PDF. Например, можем да конвертираме изображения на една страница, като JPEG, PNG, BMP, EMF или WMF, както и изображения на много страници, като TIFF и GIF, в PDF.
Следният пример за код показва как да конвертирате JPEG и TIFF изображения в 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); | |
} |
За да проработи този код, трябва да добавите препратки към Aspose.Words, Java.awt.image, and javax. imagio клас пакети за вашия проект.
Намаляване на PDF Размер на изхода
При запис в PDF можете да посочите дали искате да оптимизирате изхода. За да направите това, трябва да настроите OptimizeOutput флаг към true, и тогава излишните уплътнени платна и празни платна ще бъдат премахнати, съседе. glyphs със същото форматиране ще бъде конкатенирано.
Следният пример за код показва как да оптимизирате изхода:
// 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); |
Вижте също
- Статията Нанасяне за повече информация относно форматите на фиксирана страница и на дебита
- Статията Преобразуване във формат с фиксирана страница за повече информация в оформлението на страницата
- Статията Подобен на настройките при преображе в PDF за повече информация относно употребата на
PdfSaveOptions
клас