Conversia unui Document în PDF
Capacitatea de a converti ușor și fiabil documente dintr-un format în altul este o caracteristică cheie a Aspose.Words. Unul dintre cele mai populare formate pentru conversie este PDF – un format cu aspect fix, care păstrează aspectul original al unui document în timpul redării sale pe diferite platforme. Termenul" rendering " este folosit în Aspose.Words pentru a descrie procesul de conversie a unui document într-un format de fișier care este paginat sau are conceptul de pagini.
Conversia unui Document Word în PDF
Conversia de la Word la PDF este un proces destul de complex care necesită mai multe etape de calcul. Aspose.Words motorul de aspect imită modul în care funcționează motorul de aspect al paginii Microsoft Word, făcând documentele de ieșire PDF să arate cât mai aproape posibil de ceea ce puteți vedea în Microsoft Word.
Cu Aspose.Words puteți converti programatic un document din formate Word, cum ar fi DOC sau DOCX, în PDF fără a utiliza Microsoft Office. Acest articol explică modul de efectuare a acestei conversii.
Conversia DOC sau DOCX în PDF
Conversia din formatul documentului DOC sau DOCX în formatul PDF în Aspose.Words este foarte ușoară și poate fi realizată cu doar două linii de cod care:
- Încărcați documentul într-un obiect Document folosind unul dintre constructorii săi, specificând numele documentului cu extensia sa de format.
- Invocați una dintre metodele Document.save pe obiectul Document și specificați formatul de ieșire dorit ca PDF introducând un nume de fișier cu “.PDF” Extensie.
Următorul exemplu de cod arată cum se convertește un document din DOCX în PDF folosind metoda 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") |
Puteți descărca fișierul șablon al acestui exemplu din Aspose.Words GitHub.
Uneori este necesar să specificați opțiuni suplimentare, care pot afecta rezultatul salvării unui document ca PDF. Aceste opțiuni pot fi specificate prin utilizarea clasei PdfSaveOptions, care conține proprietăți care determină modul în care va fi afișată ieșirea PDF.
Rețineți că, cu aceeași tehnică, puteți converti orice document în format flow-layout în format PDF.
Conversia la diverse PDF standarde
Aspose.Words oferă enumerarea PdfCompliace pentru a sprijini conversia DOC sau DOCX în diferite standarde de format PDF (cum ar fi PDF 1.7, PDF 1.5, etc.).
Următorul exemplu de cod demonstrează cum se convertește un document în PDF 1.7 folosind PdfSaveOptions Cu conformitate cu 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) |
Conversia imaginilor în PDF
Conversia în PDF nu este restricționată de formatele de documente Microsoft Word. Orice format acceptat de Aspose.Words, inclusiv creat programatic, poate fi, de asemenea, convertit în PDF. De exemplu, putem converti imagini cu o singură pagină, cum ar fi JPEG, PNG, BMP, EMF, sau WMF, precum și imagini cu mai multe pagini, cum ar fi TIFF și GIF, până la PDF.
Următorul exemplu de cod arată cum se convertesc imaginile JPEG și TIFF în 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) |
Pentru ca acest cod să funcționeze, trebuie să adăugați referințe la Aspose.Words și aspose.pydrawing
la proiectul dvs.
Reduceți Dimensiunea De Ieșire PDF
Când salvați în PDF, Puteți specifica dacă doriți să optimizați ieșirea. Pentru a face acest lucru, trebuie să setați steagul optimize_output la adevărat, iar apoi pânzele imbricate redundante și pânzele goale vor fi eliminate, glifele vecine cu aceeași formatare vor fi concatenate.
# 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) |
Reduceți Dimensiunea De Ieșire PDF
Când salvați în PDF, Puteți specifica dacă doriți să optimizați ieșirea. Pentru a face acest lucru, trebuie să setați steagul optimize_output la adevărat, iar apoi pânzele imbricate redundante și pânzele goale vor fi eliminate, glifele vecine cu aceeași formatare vor fi concatenate.
Vezi Și
- Articolul Redare pentru mai multe informații despre pagina fixă și formatele de aspect de flux
- Articolul Conversia în format de pagină fixă pentru mai multe informații despre aspectul paginii
- Articolul Specificați opțiunile De redare la conversia în PDF pentru mai multe informații despre utilizarea clasei PdfSaveOptions