ברוך הבא שוב אל הבית של ממשקי API של פורמט קבצים! בעבר האחרון, כתבתי כמה פוסטים בבלוג כדי לכסות תרחישים שונים של המרת Word (DOC/DOCX) ל-PDF באופן פרוגרמטי ביישומי .NET(באמצעות C#) ו-Java. מכיוון שזו תכונה פופולרית ונפוצה, חשבתי לכסות אותה גם עבור C++. לכן, בפוסט זה, אני אראה לכם כיצד להמיר Word DOC/DOCX ל-PDF ביישומי C++. מאמר זה מתייחס להמרות Word ל-PDF הבאות:
- Word פשוט DOC/DOCX ל-PDF ב-C++.
- DOCX ל-PDF עם תקן מסוים, כלומר PDF 1.5, PDF/A-1a וכו'.
- המרת דפים נבחרים של DOCX ל-PDF.
- החל דחיסת תמונה/טקסט בהמרת DOCX ל-PDF.
ספריית ממיר C++ Word ל-PDF
Aspose.Words for C++ היא ספרייה מתקדמת ליצור ולתפעל פורמטים של מסמכי Word בתוך יישומי C++ ללא צורך ב-MS Word. אתה יכול להתקין אותו באמצעות NuGet או הורד החבילה השלמה המכילה את קבצי הספרייה כמו גם מוכנה להרצת דוגמאות קוד מקור.
המר את Word DOC/DOCX ל-PDF ב-C++
המרת מסמך Word ל-PDF היא פשוטה כמו עוגה באמצעות Aspose.Words עבור C++. להלן השלבים להמרת קובץ DOC/DOCX ל-PDF.
- צור אובייקט במחלקה Document ואתחול אותו עם הנתיב של מסמך Word.
- התקשר לשיטת Document->Save() כדי לשמור את המסמך כ-PDF.
דוגמת הקוד הבאה מראה כיצד להמיר DOCX ל-PDF ב-C++.
// טען את המסמך מהדיסק.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// הגדר את נתיב הפלט של PDF
System::String outputPath = u"DOCX-to-PDF.pdf";
// המרת DOCX ל-PDF
doc->Save(outputPath);
std::cout << "Converted DOCX to PDF successfuly.";
קלט מסמך וורד
מסמך PDF שהומר
המר DOCX ל-PDF/A או תקני PDF אחרים ב-C++
פורמט ה-PDF תומך בתקני PDF שונים, כולל PDF/A, PDF/E וכו’. יתכן ומקרה כאשר אתה צריך להמיר קובץ Word לתקן מסוים כגון PDF/A-1a. במקרה כזה, Aspose.Words for C++ מאפשר לך להגדיר את תקן ה-PDF הרצוי עבור ה-PDF שהומר. להלן השלבים להגדרת תקן PDF בהמרה של Word ל-PDF:
- צור אובייקט במחלקה Document ואתחול אותו עם הנתיב של קובץ DOCX.
- צור אובייקט במחלקה PdfSaveOptions והגדר תאימות ל-PDF באמצעות שיטת PdfSaveOptions->setCompliance().
- התקשר לשיטת Document->Save() כדי לשמור את המסמך כ-PDF.
דוגמת הקוד הבאה מראה כיצד להמיר Word DOCX ל-PDF עם תקן PDF/A-1a.
// טען את המסמך מהדיסק.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// הגדר את נתיב הפלט של PDF
System::String outputPath = u"DOCX-to-PDFA.pdf";
// הגדר אפשרויות PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Compliance(PdfCompliance::PdfA1a);
// שמור את המסמך בפורמט PDF.
doc->Save(outputPath, options);
std::cout << "Converted DOCX to PDF/A successfuly.";
המר דפים נבחרים של Word ל-PDF ב-C++
אתה יכול גם להמיר רק את הדפים שנבחרו במקום להמיר את כל ה-Word ל-PDF. להלן השלבים להמרת רק את הדפים הרצויים של Word ל-PDF:
- טען את מסמך Word באמצעות המחלקה מסמך.
- הגדר את האינדקס של דף הפתיחה באמצעות שיטת PdfSaveOptions->setPageIndex() .
- הגדר את מספר הדפים שברצונך להמיר באמצעות שיטת PdfSaveOptions->setPageCount() .
- שמור את המסמך כ-PDF בשיטת Document->Save().
דוגמת הקוד הבאה מראה כיצד להמיר דפים נבחרים של DOCX ל-PDF ב-C++.
// טען את המסמך מהדיסק.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// הגדר את נתיב הפלט של PDF
System::String outputPath = u"DOCX-to-PDF.pdf";
// הגדר אפשרויות PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PageIndex(1);
options->set_PageCount(2);
// שמור את המסמך בפורמט PDF.
doc->Save(outputPath, options);
החל דחיסת תמונה/טקסט בהמרת DOCX ל-PDF
אתה יכול גם לדחוס את מסמך ה-PDF שנוצר כדי להקטין את גודלו. Aspose.Words עבור C++ מאפשר לך להחיל את דחיסת הטקסט והתמונה באמצעות שיטות PdfSaveOptions->setTextCompression() ו-PdfSaveOptions->setImageCompression() בהתאמה. דוגמת הקוד הבאה מראה כיצד להחיל דחיסה בעת המרת DOCX ל-PDF ב-C++.
// טען את המסמך מהדיסק.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// הגדר את נתיב הפלט של PDF
System::String outputPath = u"DOCX-to-PDF.pdf";
// הגדר אפשרויות PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
// הגדר איכות JPEG
options->set_JpegQuality(100);
// שמור את המסמך בפורמט PDF
doc->Save(outputPath, options);
למידע נוסף על Aspose.Words עבור C++
תוכל לחקור עוד על Aspose.Words עבור C++ באמצעות תיעוד. במקרה שאתה עשוי למצוא משהו מבלבל, אל תהסס ליידע אותנו באמצעות הפורום שלנו.