Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
تشرح هذه المقالة كيفية تحويل HTML إلى PDF باستخدام C#. تغطي المواضيع التالية.
الكود التالي يعمل أيضًا مع مكتبة Aspose.PDF.Drawing.
Aspose.PDF for .NET هو واجهة برمجة تطبيقات لمعالجة ملفات PDF تتيح لك تحويل أي مستند HTML موجود إلى PDF بسهولة. يمكن تخصيص عملية تحويل HTML إلى PDF بمرونة.
يعرض مثال كود C# التالي كيفية تحويل مستند HTML إلى PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions();
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDF_out.pdf");
}
}
جرب تحويل HTML إلى PDF عبر الإنترنت
توفر Aspose تطبيقًا مجانيًا على الإنترنت يسمى “HTML to PDF”، حيث يمكنك تجربة الوظيفة ورؤية مدى فعاليتها.
يحتوي محرك تحويل HTML على عدة خيارات تسمح لنا بالتحكم في عملية التحويل.
استعلامات الوسائط تقنية شائعة لتقديم ورقة أنماط مخصصة لأجهزة مختلفة. يمكننا تعيين نوع الجهاز باستخدام خاصية HtmlMediaType.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedMediaType()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with Print media type
var options = new HtmlLoadOptions
{
// Set Print or Screen mode
HtmlMediaType = Aspose.Pdf.HtmlMediaType.Print
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvancedMediaType_out.pdf");
}
}
غالبًا ما تستخدم صفحات HTML خطوطًا (مثل الخطوط من مجلد محلي، Google Fonts، إلخ). يمكننا أيضًا التحكم في تضمين الخطوط في المستند باستخدام خاصية IsEmbedFonts.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedEmbedFonts()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with the font embedding option set
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Disable font embedding
IsEmbedFonts = false
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test_fonts.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvanced_EmbedFonts_out.pdf");
}
}
يوفر محرك التحويل آلية تسمح لك بالتحكم في تحميل موارد معينة مرتبطة بمستند HTML.
تحتوي الفئة HtmlLoadOptions على الخاصية CustomLoaderOfExternalResources التي يمكن من خلالها تعريف سلوك محمل الموارد.
افترض أننا نحتاج إلى استبدال جميع صور PNG بصورة واحدة test.jpg واستبدال عناوين URL الخارجية بأخرى داخلية للموارد الأخرى.
للقيام بذلك يمكننا تعريف محمل مخصص SamePictureLoader وتوجيه CustomLoaderOfExternalResources إلى هذا الاسم.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_DummyImage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document with a custom resource loader for external images
var options = new Aspose.Pdf.HtmlLoadOptions
{
CustomLoaderOfExternalResources = SamePictureLoader
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Aspose.Pdf.LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
Aspose.Pdf.LoadOptions.ResourceLoadingResult result;
if (resourceURI.EndsWith(".png"))
{
byte[] resultBytes = File.ReadAllBytes(dataDir + "test.jpg");
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(resultBytes)
{
// Set MIME Type
MIMETypeIfKnown = "image/jpeg"
};
}
else
{
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(GetContentFromUrl(resourceURI));
}
return result;
}
private static byte[] GetContentFromUrl(string url)
{
var httpClient = new System.Net.Http.HttpClient();
return httpClient.GetByteArrayAsync(url).GetAwaiter().GetResult();
}
توفر Aspose.PDF for .NET القدرة على عرض كل المحتوى في صفحة واحدة عند تحويل ملف HTML إلى صيغة PDF. على سبيل المثال، إذا كان لديك محتوى HTML حجمه أكبر من صفحة واحدة، يمكنك استخدام الخيار لعرض البيانات الناتجة في صفحة PDF واحدة. لتفعيل هذا الخيار، تم توسيع فئة HtmlLoadOptions بالعلامة IsRenderToSinglePage. يوضح المقتطف البرمجي أدناه كيفية استخدام هذه الميزة.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedSinglePageRendering()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Set Render to single page property
IsRenderToSinglePage = true
};
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLToPDF.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderContentToSamePage_out.pdf");
}
}
توفر Aspose.PDF for .NET القدرة على تحويل صفحة HTML إلى مستند PDF. بما أن HTML يسمح بإضافة عناصر رسومية SVG كوسوم في الصفحة، فإن Aspose.PDF يدعم أيضًا تحويل هذه البيانات إلى ملف PDF الناتج. يوضح المقتطف البرمجي التالي كيفية تحويل ملفات HTML التي تحتوي على وسوم رسومية SVG إلى مستندات PDF ذات وسوم.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFWithSVG()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions(Path.GetDirectoryName(dataDir + "HTMLSVG.html"));
// Initialize Document object
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLSVG.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderHTMLwithSVGData_out.pdf");
}
}
لتلبية متطلبات إمكانية الوصول، يجب أن يتضمن مستند PDF عناصر بنية منطقية تحدد ترتيب القراءة، وتوفر نصًا بديلًا لقارئات الشاشة لوصف الأجزاء التوضيحية من المستند، وتحدد تسلسل هرمي لمحتوياته.
العديد من مستندات HTML تحتوي بالفعل على هذا النوع من البنية المنطقية. يمكن لـ Aspose.PDF الحفاظ عليها ونقلها إلى PDF أثناء عملية التحويل من HTML إلى PDF.
قم بتعيين الخاصية HtmlLoadOptions.CreateLogicalStructure إلى true لتكرار بنية مستند HTML الأصلي باستخدام عناصر بنية PDF المنطقية.
تحويل صفحة ويب يختلف قليلاً عن تحويل مستند HTML محلي. لتحويل محتويات صفحة ويب إلى صيغة PDF، يمكننا أولاً جلب محتويات صفحة HTML باستخدام كائن HttpClient، إنشاء كائن Stream، تمرير المحتويات إلى كائن Document، ثم عرض الناتج بصيغة PDF.
عند تحويل صفحة ويب مستضافة على خادم إلى PDF:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_WebPage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "https://en.wikipedia.org/wiki/Aspose_API";
// Set page size A3 and Landscape orientation;
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
PageInfo =
{
Width = 842,
Height = 1191,
IsLandscape = true
}
};
// Load the web page content as a stream and create a PDF document
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url), options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
في بعض الأحيان نحتاج إلى تحويل ملفات HTML التي تتطلب مصادقة وصلاحيات وصول، بحيث لا يتمكن سوى المستخدمون المصرح لهم من جلب محتويات الصفحة. يشمل ذلك السيناريو الذي يتم فيه جلب بعض الموارد/البيانات المشار إليها داخل HTML من خادم خارجي يتطلب مصادقة. لتلبية هذا المتطلب، تمت إضافة الخاصية ExternalResourcesCredentials إلى فئة HtmlLoadOptions. يوضح المقتطف البرمجي التالي الخطوات لتمرير بيانات الاعتماد لطلب HTML وموارده المقابلة أثناء تحويل ملف HTML إلى PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedAuthorized()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "http://httpbin.org/basic-auth/user1/password1";
var credentials = new System.Net.NetworkCredential("user1", "password1");
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
ExternalResourcesCredentials = credentials
};
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url, credentials), options))
{
// Save PDF document
document.Save(dataDir + "HtmlTest_out.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
جرب تحويل MHTML إلى PDF عبر الإنترنت
توفر Aspose.PDF for .NET تطبيقًا مجانيًا على الإنترنت يسمى “MHTML to PDF”، حيث يمكنك تجربة الوظيفة ورؤية مدى فعاليتها.
MHTML، اختصارًا لـ MIME HTML، هو تنسيق أرشفة صفحات الويب يُستخدم لدمج الموارد التي عادةً ما تكون ممثلة بروابط خارجية (مثل الصور، الرسوم المتحركة Flash، تطبيقات Java، وملفات الصوت) مع كود HTML في ملف واحد. يتم ترميز محتوى ملف MHTML كما لو كان رسالة بريد إلكتروني HTML، باستخدام نوع MIME multipart/related. يمكن لـ Aspose.PDF for .NET تحويل ملفات HTML إلى صيغة PDF، ومع إصدار Aspose.PDF for .NET 9.0.0، قدمنا ميزة جديدة تتيح لك تحويل ملفات MHTML إلى صيغة PDF. يوضح المقتطف البرمجي التالي كيفية تحويل ملفات MHTML إلى صيغة PDF باستخدام C#:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertMHTtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize MhtLoadOptions with page setup
var options = new Aspose.Pdf.MhtLoadOptions()
{
PageInfo = { Width = 842, Height = 1191, IsLandscape = true }
};
// Initialize Document object using the MHT file and options
using (var document = new Aspose.Pdf.Document(dataDir + "fileformatinfo.mht", options))
{
// Save PDF document
document.Save(dataDir + "MhtmlTest_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.