السيطرة على تحميل الموارد الخارجية في سجل Excel لتحويلها إلى ملف PDF
سيناريوهات الاستخدام المحتملة
قد يحتوي ملف Excel الخاص بك على موارد خارجية مثل الصور المرتبطة أو الكائنات. عند تحويل ملف Excel الخاص بك إلى PDF، يسترد Aspose.Cells هذه الموارد الخارجية ويقوم بتحويلها إلى PDF. ولكن في بعض الأحيان، قد لا ترغب في تحميل هذه الموارد الخارجية وأكثر من ذلك، قد ترغب في التلاعب بها. يمكنك القيام بذلك باستخدام WorkbookSettings.StreamProvider الذي ينفذ واجهة IStreamProvider.
التحكم في تحميل الموارد الخارجية في دفتر العمل في MS Excel أثناء تحويله إلى PDF
توضح الشفرة النموذجية التالية كيفية استخدام WorkbookSettings.StreamProvider للتحكم في تحميل الموارد الخارجية والتلاعب بها. يرجى التحقق من ملف Excel النموذجي المستخدم داخل الشفرة و ملف PDF الناتج الذي تم إنشاؤه بواسطة الشفرة. يوضح ال اللقطة الشاشة كيف تم استبدال الصورة الخارجية القديمة في ملف Excel النموذجي بـ صورة جديدة في ملف PDF الناتج.
الكود المثالي
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
//Implement IStreamProvider | |
class MyStreamProvider : IStreamProvider | |
{ | |
public void CloseStream(StreamProviderOptions options) | |
{ | |
System.Diagnostics.Debug.WriteLine("-----Close Stream-----"); | |
} | |
public void InitStream(StreamProviderOptions options) | |
{ | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
System.Diagnostics.Debug.WriteLine("-----Init Stream-----"); | |
//Read the new image in a memory stream and assign it to Stream property | |
byte[] bts = File.ReadAllBytes(sourceDir + "newPdfSaveOptions_StreamProvider.png"); | |
MemoryStream ms = new MemoryStream(bts); | |
options.Stream = ms; | |
} | |
} | |
public static void Run() | |
{ | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
//Load source Excel file containing external image | |
Workbook wb = new Workbook(sourceDir + "samplePdfSaveOptions_StreamProvider.xlsx"); | |
//Specify Pdf Save Options - Stream Provider | |
PdfSaveOptions opts = new PdfSaveOptions(); | |
opts.OnePagePerSheet = true; | |
wb.Settings.ResourceProvider = new MyStreamProvider(); | |
//Save the workbook to Pdf | |
wb.Save(outputDir + "outputPdfSaveOptions_StreamProvider.pdf", opts); | |
Console.WriteLine("ControlLoadingOfExternalResourcesInExcelToPDF executed successfully.\r\n"); | |
} |