نحوه تبدیل سند word به pdf در Asp.net core چگونه است ؟
من از aspose استفاده کردم نیاز به لایسنس دارد.کتابخانه رایگان نمی دونید؟ یا روش های دیگر.
پاسخ هوش مصنوعی
شما می توانید برای تبدیل سند Word به PDF در Asp.Net Core از کتابخانه های رایگان مثل DocX یا Open XML SDK استفاده کنید. به عنوان مثال، برای استفاده از Open XML SDK می توانید کد زیر را به کار ببرید:
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using PdfSharp.Pdf;
using PdfSharp.Drawing;
public void ConvertWordToPdf(string wordFilePath, string pdfFilePath)
{
using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(wordFilePath, false))
{
// Create a new PDF document
PdfDocument pdfDocument = new PdfDocument();
// Create PDF page
PdfPage pdfPage = pdfDocument.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pdfPage);
// Load the content of the Word file
var body = wordDocument.MainDocumentPart.Document.Body;
string text = body.InnerText;
// Draw text on PDF page
gfx.DrawString(text, new XFont("Verdana", 12, XFontStyle.Regular), XBrushes.Black,
new XRect(0, 0, pdfPage.Width, pdfPage.Height), XStringFormats.TopLeft);
// Save the PDF document
pdfDocument.Save(pdfFilePath);
}
}
همچنین می توانید از کتابخانه Syncfusion استفاده کنید که نسخه رایگان دارد. برای اطلاعات بیشتر می توانید به مستندات آن ها مراجعه کنید.
برای تبدیل فایل Word به Pdf میتونید از کامپوننت های Syncfusion هم استفاده کنید. البته این کامپوننت ها هم دارای لایسنس هستن ولی لایسنس رایگان این کامپوننت ها در محیط نت موجود هست.
اما بدون استفاده از کامپوننت هم می تونید این کار رو انجام بدید.
تبدیل فایل Word به Pdf با استفاده از کتابخانه GrapeCity
- یک پروژه از نوع Asp.net Core ایجاد کنید.
- در پنجره Solution Explorer روی Dependencies کلیک راست کنید و گزینه Manage Nuget Package را بزنید.
- پکیج GrapeCity.Documents.Word.Layout را پیدا کنید و نصب کنید.
- در کنترلر Home و اکشن Index کد زیر را کپی و پیست کنید:
public IActionResult Index()
{
//دریافت فایل ورد
var wordDoc = new GcWordDocument();
var path = Path.Combine(@"D:\porsnet.docx");
wordDoc.Load(path);
using (GcWordLayout layout = new GcWordLayout(wordDoc))
{
//مشخص کردن مشخصات فایل پی دی اف که قرار است تولید شود
PdfOutputSettings pdfOutputSettings = new PdfOutputSettings();
pdfOutputSettings.CompressionLevel = CompressionLevel.Fastest;
pdfOutputSettings.ConformanceLevel = GrapeCity.Documents.Pdf.PdfAConformanceLevel.PdfA1a;
pdfOutputSettings.BackColor = Color.LightGray;
pdfOutputSettings.DocumentInfo = new GrapeCity.Documents.Pdf.DocumentInfo()
{
Author = "Porsnet",
Title = "ConvertWordToPdf",
CreationDate = new GrapeCity.Documents.Pdf.PdfDateTime(DateTime.Now)
};
//تبدیل فایل ورد دریافت شده به پی دی اف مشخص شده
layout.SaveAsPdf(@"D:\salam.pdf", null, pdfOutputSettings);
}
return View();
}
کد بالا شامل 3 قسمت می باشد. ابتدا فایل ورد مورد نظر را دریافت می کند. در این مثال در درایو D فایل ورد به نام porsnet.docx را دریافت می کند. شما میتوانید این مسیر را از طریق کلاینت هم مشخص کنید.
سپس مشخصات فایل pdf که قرار است تولید شود را مشخص می کند و در نهایت فایل ورد را به pdf تبدیل می کند.
کد بالا تست شده و سالم می باشد.
نکته : این روش برای فایل های ورد انگلیسی بدون مشکل اجرا میشه. اما متاسفانه در برخی فایل های ورد فارسی مشکلاتی پیش میاره. در هر صورت به عنوان یک راه کار می تونید ازش استفاده کنید یا بهبود بدید کار رو.
برای تست ابتدا یک فایل ورد کوچک رو ایجاد کنید و تست کنید.
- جلوگیری از اد شدن خودکار در گروه و کانال تلگرام
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- جلوگیری از انتشار غیرمجاز مطالب در کانال های تلگرامی
- تفاوت های تلگرام و واتس اپ چیست ؟
- چرا استوری های واتس اپ برای دوستان نمایش داده نمیشن ؟
- چند تا استوری رایگان می تونیم تلگرام بذاریم ؟
- خطای Severity Code Description Project هنگام استارت پروژه
- کار نکردن navBar و sideBar در پروژه Asp.net core
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2