Converti un documento in PDF
La capacità di convertire facilmente e in modo affidabile documenti da un formato all’altro è una caratteristica chiave di Aspose.Words. Uno dei formati più popolari per la conversione è PDF, un formato a layout fisso, che preserva l’aspetto originale di un documento durante il rendering su varie piattaforme. Il termine “rendering” viene utilizzato in Aspose.Words per descrivere il processo di conversione di un documento in un formato di file impaginato o con il concetto di pagine.
Converti un documento Word in PDF
La conversione da Word a PDF è un processo piuttosto complesso che richiede diverse fasi di calcolo. Il motore di layout Aspose.Words imita il modo in cui funziona il motore di layout di pagina di Microsoft Word, rendendo i documenti di output PDF il più vicino possibile a ciò che puoi vedere in Microsoft Word.
Con Aspose.Words puoi convertire a livello di codice un documento dai formati Word, come DOC o DOCX, in PDF senza utilizzare Microsoft Office. Questo articolo spiega come eseguire questa conversione.
Converti DOC o DOCX in PDF
La conversione dal formato documento DOC o DOCX al formato PDF in Aspose.Words è molto semplice e può essere eseguita con sole due righe di codice che:
- Carica il tuo documento in un oggetto Document utilizzando uno dei suoi costruttori specificando il nome del documento con la sua estensione di formato.
- Richiamare uno dei metodi Document.save sull’oggetto Document e specificare il formato di output desiderato come PDF inserendo un nome file con estensione “.PDF”.
Il seguente esempio di codice mostra come convertire un documento da DOCX in PDF utilizzando il metodo save:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Document.docx") | |
doc.save(ARTIFACTS_DIR + "BaseConversions.docx_to_pdf.pdf") |
È possibile scaricare il file modello di questo esempio da Aspose.Words GitHub.
A volte è necessario specificare opzioni aggiuntive, che possono influenzare il risultato del salvataggio di un documento come PDF. Queste opzioni possono essere specificate utilizzando la classe PdfSaveOptions, contenente proprietà che determinano come verrà visualizzato l’output PDF.
Tieni presente che con la stessa tecnica puoi convertire qualsiasi documento in formato layout di flusso in formato PDF.
Converti in vari standard PDF
Aspose.Words fornisce l’enumerazione PdfCompliace per supportare la conversione di DOC o DOCX in vari standard di formato PDF (come PDF 1.7, PDF 1.5, ecc.).
Il seguente esempio di codice dimostra come convertire un documento in PDF 1.7 utilizzando PdfSaveOptions con conformità a PDF17:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Rendering.docx") | |
save_options = aw.saving.PdfSaveOptions() | |
save_options.compliance = aw.saving.PdfCompliance.PDF17 | |
doc.save(ARTIFACTS_DIR + "WorkingWithPdfSaveOptions.conversion_to_pdf_17.pdf", save_options) |
Converti immagini in PDF
La conversione in PDF non è limitata dai formati di documento Microsoft Word. Qualsiasi formato supportato da Aspose.Words, incluso quello creato a livello di codice, può anche essere convertito in PDF. Ad esempio, possiamo convertire in PDF immagini a pagina singola, come JPEG, PNG, BMP, EMF o WMF, nonché immagini a più pagine, come TIFF e GIF.
Il seguente esempio di codice mostra come convertire immagini JPEG e TIFF in PDF:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
self.convert_image_to_pdf(IMAGES_DIR + "Logo.jpg", | |
ARTIFACTS_DIR + "BaseConversions.JpgToPdf.pdf") | |
self.convert_image_to_pdf(IMAGES_DIR + "Transparent background logo.png", | |
ARTIFACTS_DIR + "BaseConversions.PngToPdf.pdf") | |
self.convert_image_to_pdf(IMAGES_DIR + "Windows MetaFile.wmf", | |
ARTIFACTS_DIR + "BaseConversions.WmfToPdf.pdf") | |
self.convert_image_to_pdf(IMAGES_DIR + "Tagged Image File Format.tiff", | |
ARTIFACTS_DIR + "BaseConversions.TiffToPdf.pdf") | |
self.convert_image_to_pdf(IMAGES_DIR + "Graphics Interchange Format.gif", | |
ARTIFACTS_DIR + "BaseConversions.GifToPdf.pdf") |
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
@staticmethod | |
def convert_image_to_pdf(input_file_name: str, output_file_name: str): | |
"""Converts an image to PDF using Aspose.Words for .NET. | |
:param input_file_name: File name of input image file. | |
:param output_file_name: Output PDF file name. | |
""" | |
print("Converting " + input_file_name + " to PDF...") | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
# Read the image from file | |
with drawing.Image.from_file(input_file_name) as image: | |
# Find which dimension the frames in this image represent. For example | |
# the frames of a BMP or TIFF are "page dimension" whereas frames of a GIF image are "time dimension". | |
dimension = drawing.imaging.FrameDimension(image.frame_dimensions_list[0]) | |
frames_count = image.get_frame_count(dimension) | |
for frame_idx in range(frames_count): | |
# Insert a section break before each new page, in case of a multi-frame TIFF. | |
if frame_idx != 0: | |
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE) | |
image.select_active_frame(dimension, frame_idx) | |
frame_stream = io.BytesIO() | |
image.save(frame_stream, drawing.imaging.ImageFormat.png) | |
# 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. | |
page_setup = builder.page_setup | |
page_setup.page_width = aw.ConvertUtil.pixel_to_point(image.width, image.horizontal_resolution) | |
page_setup.page_height = aw.ConvertUtil.pixel_to_point(image.height, image.vertical_resolution) | |
# Insert the image into the document and position it at the top left corner of the page. | |
builder.insert_image( | |
frame_stream, | |
aw.drawing.RelativeHorizontalPosition.PAGE, | |
0, | |
aw.drawing.RelativeVerticalPosition.PAGE, | |
0, | |
page_setup.page_width, | |
page_setup.page_height, | |
aw.drawing.WrapType.NONE) | |
doc.save(output_file_name) |
Per far funzionare questo codice, devi aggiungere riferimenti a Aspose.Words e aspose.pydrawing
al tuo progetto.
Riduci le dimensioni di output del PDF
Quando si salva in PDF, è possibile specificare se si desidera ottimizzare l’output. Per fare ciò, è necessario impostare il flag optimize_output su true, quindi le tele nidificate ridondanti e le tele vuote verranno rimosse, gli glyph vicini con la stessa formattazione verranno concatenati.
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Rendering.docx") | |
save_options = aw.saving.PdfSaveOptions() | |
save_options.optimize_output = True | |
doc.save(ARTIFACTS_DIR + "PdfSaveOptions.OptimizeOutput.pdf", save_options) |
Riduci le dimensioni di output del PDF
Quando si salva in PDF, è possibile specificare se si desidera ottimizzare l’output. Per fare ciò, è necessario impostare il flag optimize_output su true, quindi le tele nidificate ridondanti e le tele vuote verranno rimosse, gli glyph vicini con la stessa formattazione verranno concatenati.
Guarda anche
- L’articolo Rendering per maggiori informazioni sui formati a pagina fissa e con layout a flusso
- L’articolo Conversione nel formato a pagina fissa per maggiori informazioni sull’impaginazione
- L’articolo Specifica le opzioni di rendering durante la conversione in PDF per maggiori informazioni sull’utilizzo della classe PdfSaveOptions