تحويل Excel إلى PDF باستخدام C++
تحويل سجل عمل Excel إلى PDF
ملفات PDF مستخدمة على نطاق واسع لتبادل الوثائق بين المؤسسات والقطاعات الحكومية والأفراد. هو صيغة وثيقة قياسية، وغالباً ما يُطلب من مطوري البرامج إيجاد طريقة لتحويل ملفات إكسل إلى وثائق PDF.
تدعم Aspose.Cells تحويل ملفات Excel إلى PDF وتحافظ على دقة الرؤية العالية في التحويل.
تكتب Aspose.Cells for C++ مباشرة المعلومات حول API ورقم الإصدار في المستندات الناتجة. على سبيل المثال، عند تصيير مستند إلى PDF، تملأ Aspose.Cells for C++ حقل منتج PDF بقيمة، مثلاً ‘Aspose.Cells v23.2’.
يرجى ملاحظة أنه يمكنك تغيير هذه المعلومات في المستندات الناتجة باستخدام خاصية PdfSaveOptions.GetProducer().
التحويل المباشر
يدعم Aspose.Cells for C++ التحويل من جداول البيانات إلى PDF بشكل مستقل عن البرامج الأخرى. ببساطة، احفظ ملف Excel كملف PDF باستخدام طريقة Save من فئة Workbook. تقدم طريقة Save عضو التعداد SaveFormat.Pdf الذي يحول ملفات Excel الأصلية إلى صيغة PDF.
اتبع الخطوات التالية لتحويل الجداول الحسابية في Excel مباشرة إلى تنسيق PDF:
- أنشئ كائن من فئة Workbook عن طريق استدعاء منشئها الفارغ.
- يمكنك فتح/تحميل ملف قالب موجود أو تخطي هذه الخطوة إذا كنت تقوم بإنشاء السجل العمل من البداية.
- قم بأي عمل (إدخال بيانات، تطبيق التنسيق، تعيين الصيغ، إدراج الصور، أو أشكال الرسم الأخرى، وهلم جرا) على جدول البيانات باستخدام واجهات برمجة التطبيقات الخاصة بـ Aspose.Cells.
- عند اكتمال رمز جدول البيانات، استدعي طريقة Save من فئة Workbook لحفظ جدول البيانات.
يجب أن يكون تنسيق الملف PDF، لذلك اختر Pdf (قيمة معرفة مسبقًا) من التعداد SaveFormat لإنشاء المستند النهائي بصيغة PDF.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xls";
// Path of output PDF file
U16String outputFilePath = outDir + u"output.pdf";
// Create workbook
Workbook workbook(inputFilePath);
// Save the document in PDF format
workbook.Save(outputFilePath, SaveFormat::Pdf);
std::cout << "Document saved successfully in PDF format!" << std::endl;
Aspose::Cells::Cleanup();
}
التحويل المتقدم
يمكنك أيضًا اختيار استخدام فئة PdfSaveOptions لضبط خصائص مختلفة للتحويل. يتيح ضبط خصائص مختلفة لفئة PdfSaveOptions السيطرة على إعدادات الطباعة، والخط، والأمان، وضغوط البيانات لإخراج PDF.
أهم خاصية هي GetCompliance()، التي تمكنك من تحديد مستوى الامتثال لمعايير PDF. حاليًا، يمكنك الحفظ بصيغ PDF 1.4، PDF 1.5، PDF 1.6، PDF 1.7، PDF/A-1a، PDF/A-1b، PDF/A-2a، PDF/A-2b، PDF/A-2u، PDF/A-3a، PDF/A-2ab، و PDF/A-3u. لاحظ أن حجم ملف الإخراج يكون أكبر عند استخدام تنسيق PDF/A.
حفظ جدول البيانات إلى ملف PDF/A المتوافق
يوضح الشفرة البرمجية أدناه كيفية استخدام فئة PdfSaveOptions لحفظ ملفات Excel بصيغة PDF / PDF/A متوافقة.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Instantiate new workbook
Workbook workbook;
// Insert a value into the A1 cell in the first worksheet
workbook.GetWorksheets().Get(0).GetCells().Get(0, 0).PutValue(U16String(u"Testing PDF/A"));
// Define PdfSaveOptions
PdfSaveOptions pdfSaveOptions;
// Set the compliance type
pdfSaveOptions.SetCompliance(PdfCompliance::PdfA1b);
// Save the file
workbook.Save(outDir + u"output.pdf", pdfSaveOptions);
std::cout << "PDF file created successfully with PDF/A-1b compliance!" << std::endl;
Aspose::Cells::Cleanup();
}
تعيين وقت إنشاء ملف PDF
باستخدام فئة PdfSaveOptions، يمكنك الحصول على وقت إنشاء ملف PDF أو ضبطه. تظهر الشفرة التالية استخدام خاصية PdfSaveOptions.GetCreatedTime() لضبط وقت إنشاء ملف PDF.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input excel file
U16String inputPath = srcDir + u"Book1.xlsx";
// Load excel file containing charts
Workbook workbook(inputPath);
// Create an instance of PdfSaveOptions
PdfSaveOptions options;
options.SetCreatedTime(Date{ 2025,01,01 });
// Save the workbook to PDF format while passing the object of PdfSaveOptions
workbook.Save(srcDir + u"output.pdf", options);
std::cout << "Workbook saved to PDF successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
تعيين خيار ContentCopyForAccessibility
باستخدام فئة PdfSaveOptions، يمكنك الحصول على أو ضبط خيار GetAccessibilityExtractContent() لملف PDF للتحكم في الوصول إلى المحتوى في PDF المحول.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputPath = srcDir + u"BookWithSomeData.xlsx";
// Load excel file containing some data
Workbook workbook(inputPath);
// Create an instance of PdfSaveOptions
PdfSaveOptions pdfSaveOpt;
// Create an instance of PdfSecurityOptions
PdfSecurityOptions securityOptions;
// Set AccessibilityExtractContent to false
securityOptions.SetAccessibilityExtractContent(false);
// Set the security option in the PdfSaveOptions
pdfSaveOpt.SetSecurityOptions(securityOptions);
// Save the workbook to PDF format while passing the object of PdfSaveOptions
workbook.Save(outDir + u"outFile.pdf", pdfSaveOpt);
std::cout << "Workbook saved to PDF format successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
تصدير الخصائص المخصصة إلى ملف PDF
باستخدام فئة PdfSaveOptions، يمكنك تصدير الخصائص المخصصة في دفتر المصدر إلى PDF. يتم توفير التعداد PdfCustomPropertiesExport لتحديد الطريقة التي يتم بها تصدير الخصائص. يمكن ملاحظة هذه الخصائص في Adobe Acrobat Reader بالنقر على ملف ثم خيار خصائص كما هو موضح في الصورة التالية. يمكن تنزيل ملف القالب “sourceWithCustProps.xlsx” من هنا للاختبار، وملف PDF الناتج “outSourceWithCustProps” متوفر هنا للتحليل.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;
int main()
{
Aspose::Cells::Startup();
// Load excel file containing custom properties
U16String inputFilePath(u"sourceWithCustProps.xlsx");
Workbook workbook(inputFilePath);
// Create an instance of PdfSaveOptions
PdfSaveOptions pdfSaveOptions;
// Set CustomPropertiesExport property to PdfCustomPropertiesExport::Standard
pdfSaveOptions.SetCustomPropertiesExport(PdfCustomPropertiesExport::Standard);
// Save the workbook to PDF format while passing the object of PdfSaveOptions
U16String outputFilePath(u"outSourceWithCustProps.pdf");
workbook.Save(outputFilePath, pdfSaveOptions);
Aspose::Cells::Cleanup();
}
سمات التحويل
نحن نعمل على تعزيز ميزات التحويل مع كل إصدار جديد. لا تزال عملية تحويل Excel إلى PDF في Aspose.Cells تحتوي على بعض القيود. MapChart غير مدعوم عند التحويل إلى تنسيق PDF. كما أن بعض كائنات الرسم غير مدعومة بشكل جيد.
تدرج الجدول التالي جميع الميزات المدعومة كليًا أو جزئيًا عند التصدير إلى PDF باستخدام Aspose.Cells. هذا الجدول ليس نهائيًا ولا يغطي جميع سمات جدول البيانات، لكنه يحدد الميزات التي لا تدعم أو تدعم جزئيًا للتحويل إلى PDF.
عنصر المستند | الخاصية | مدعوم | ملاحظات |
---|---|---|---|
المحاذاة | نعم | ||
إعدادات الخلفية | نعم | ||
الحد | اللون | نعم | |
الحد | نوع الخط | نعم | |
الحد | عرض الخط | نعم | |
بيانات الخلية | نعم | ||
التعليقات | نعم | ||
التنسيق الشرطي | نعم | ||
خصائص المستند | نعم | ||
كائنات الرسم | جزئيا | الظلال والتأثيرات ثلاثية الأبعاد لكائنات الرسم غير مدعومة بشكل جيد؛ WordArt و SmartArt مدعومان جزئيا. | |
الخط | الحجم | نعم | |
الخط | اللون | نعم | |
الخط | النمط | نعم | |
الخط | التسطير | نعم | |
الخط | التأثيرات | نعم | |
الصور | نعم | ||
الرابط التشعبي | نعم | ||
الرسوم البيانية | جزئيا | مخطط الخريطة غير مدعوم. | |
خلايا مدمجة | نعم | ||
فاصل الصفحة | نعم | ||
إعداد الصفحة | رأس/تذييل | نعم | |
إعداد الصفحة | الهوامش | نعم | |
إعداد الصفحة | اتجاه الصفحة | نعم | |
إعداد الصفحة | حجم الصفحة | نعم | |
إعداد الصفحة | منطقة الطباعة | نعم | |
إعداد الصفحة | عناوين الطباعة | نعم | |
إعداد الصفحة | المقياس | نعم | |
ارتفاع الصف/عرض العمود | نعم | ||
لغة من اليمين إلى اليسار | نعم |
مواضيع متقدمة
- إضافة علامات مرجعية لملف PDF باستخدام وجهات مسماة
- تغيير الخط المستخدم للرموز اليونيكود الخاصة عند حفظ الملف إلى PDF
- تحويل ملف XLSX إلى تنسيق PDF
- تحويل ملف Excel إلى تنسيق PDF متوافق مع PDFA-1a
- تحويل ملف XLS مع صور أو رسوم بيانية إلى تنسيق PDF
- إنشاء PdfBookmarkEntry لورقة الرسم البياني
- تناسب جميع أعمدة ورقة العمل على صفحة PDF واحدة
- الحصول على DrawObject والحدود أثناء تقديمها إلى PDF باستخدام فئة DrawObjectEventHandler
- الحصول على تحذيرات بديلة للخط أثناء تحويل ملف Excel إلى PDF
- تجاهل الأخطاء أثناء تحويل Excel إلى PDF
- تحديد عدد الصفحات التي يتم إنشاؤها – تحويل من Excel إلى PDF
- طباعة التعليقات عند الحفظ إلى PDF
- تقديم الإضافات المكتبية أثناء تحويل Excel إلى PDF
- تقديم صفحة PDF واحدة لكل ورقة عمل إكسل - تحويل إكسل إلى PDF
- عرض الحروف اليونيكود الإضافية في ملف PDF الناتج باستخدام Aspose.Cells
- إعادة عينات الصور المضافة - تحويل إكسل إلى PDF
- حفظ كل ورقة عمل في ملف PDF مختلف
- حفظ إكسل في ملف PDF بحجم قياسي أو حد أدنى
- حفظ ورقات العمل المحددة في ملف PDF
- مستندات PDF آمنة
- تحديد كيفية عبور السلسلة في ملف PDF والصورة