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:

  1. Carica il tuo documento in un oggetto Document utilizzando uno dei suoi costruttori specificando il nome del documento con la sua estensione di formato.
  2. 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")
view raw docx-to-pdf.py hosted with ❤ by GitHub

È possibile scaricare il file modello di questo esempio da Aspose.Words GitHub.

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")
view raw image-to-pdf.py hosted with ❤ by GitHub
# 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