سوالات متداول

این صفحه شامل پاسخ به سوالات متداول است. لطفاً صفحه فعلی را بیاموزید - شاید این به شما امکان دهد مشکل خود را سریع حل کنید.

اگر پاسخ سوال خود را پیدا نکردید، می توانید در انجمن پشتیبانی بپرسید. برای اطلاعات در مورد نحوه گزارش صحیح سؤال یا مشکل خود، به صفحه پشتیبانی فنی مراجعه کنید.

عمومی

س: Aspose.Words چیست؟

Aspose.Words for .NET یک کتابخانه کلاسی است که به برنامه های کاربردی شما اجازه می دهد تا طیف گسترده ای از وظایف پردازش اسناد را انجام دهند. با Aspose.Words for .NET، می‌توانید اسناد را بدون برنامه‌های شخص ثالث تولید، اصلاح، تبدیل، رندر و چاپ کنید.

جزئیات را می توان در اسناد ما یافت.


س: “Aspose.Words به برنامه های شخص ثالث نیاز ندارد” به چه معناست؟

Aspose.Words for .NET برای کار کردن نیازی به نصب برنامه های شخص ثالث یا بسته های نرم افزاری اضافی ندارد. فقط Aspose.Words را همانطور که در مقاله نصب و راه اندازی توضیح داده شده دانلود و نصب کنید و شروع کنید.


س: Aspose.Words از چه پلتفرم هایی پشتیبانی می کند؟

Aspose.Words for .NET اکثر محیط های توسعه محبوب و پلت فرم های استقرار را پوشش می دهد. API آن می تواند برای توسعه برنامه های کاربردی برای طیف گسترده ای از سیستم عامل ها مانند Windows، Linux، و Mac OS و پلتفرم های مختلف استفاده شود.

برای جزئیات، به صفحه بررسی اجمالی محصولات و بخش پلتفرم ها و قابلیت Interoperability مراجعه کنید.


س: Aspose.Words از چه فرمت های سندی پشتیبانی می کند؟

Aspose.Words for .NET از اکثر فرمت های سند محبوب مانند DOC، DOCX، HTML، Markdown، PDF، XML و غیره پشتیبانی می کند.

می توانید لیست کامل فرمت های پشتیبانی شده را در صفحه فرمت های سند پشتیبانی شده مشاهده کنید.


س: چگونه می توانم Aspose.Words را رایگان امتحان کنم؟

شما می توانید این کار را به دو صورت انجام دهید – با استفاده از نسخه آزمایشی یا مجوز موقت 30 روزه. نسخه آزمایشی مشابه نسخه خریداری شده است، عملکرد کامل محصول را ارائه می دهد، اما هنگام بارگیری و ذخیره، یک واترمارک ارزیابی کننده در بالای سند اضافه می کند و حداکثر اندازه سند را به چند صد پاراگراف محدود می کند. مجوز موقت به شما امکان می دهد تا Aspose.Words را بدون محدودیت آزمایشی به مدت 30 روز آزمایش کنید.

برای اطلاعات بیشتر به صفحه مجوز و اشتراک مراجعه کنید.


س: چگونه می توانم Aspose.Words را بخرم؟

برای خرید لایسنس Aspose.Words باید به صفحه خرید رفته، محصول “Aspose.Words” و نوع لایسنس مناسب خود را انتخاب کنید. سپس مجوز را به سبد خرید خود اضافه کنید و دستورالعمل های سبد خرید را دنبال کنید.

پس از خرید، همانطور که در بخش مجوز خریداری شده توضیح داده شده است، برای مجوز اقدام کنید.

جزئیات نحوه نصب Aspose.Words را می توانید در صفحه نصب و راه اندازی بخوانید.


س: چگونه می توانم پشتیبانی دریافت کنم؟

از انجمن پشتیبانی فنی رایگان استفاده کنید. برای جزئیات در مورد نحوه گزارش صحیح یک مشکل و کارهایی که باید قبل از تماس با انجمن انجام شود، به صفحه پشتیبانی فنی مراجعه کنید.

ارائه یک سند

س: چرا طرح و فونت در سند خروجی با نسخه اصلی متفاوت است؟

ممکن است فونت در دسترس نباشد، یا فرمت فونت توسط Microsoft Word پشتیبانی می شود اما توسط Aspose.Words پشتیبانی نمی شود. Aspose.Words دستکاری و جایگزینی فونت های TrueType را اجرا خواهد کرد.

برای بررسی اینکه آیا فونت موجود نیست:

  • در Aspose.Words از هشدارهای جایگزینی فونت استفاده کنید (برای جزئیات، به بخش “چگونه تشخیص دهیم که فونت جایگزین شده است” در مقاله دستکاری و جایگزینی فونت های TrueType مراجعه کنید).
  • در Microsoft Word کادر محاوره ای “تعویض قلم” را باز کنید (فایل → گزینه ها → پیشرفته → جایگزینی قلم).

س: فونت های برنامه های ASP.NET را کجا باید ذخیره کنم؟

در APS.NET، هیچ دسترسی به پوشه فونت های سیستم با اعتماد متوسط وجود ندارد. کاربران باید فونت ها را در پوشه خود ذخیره کنند.


س: چرا فونت بازگشتی روی پلتفرم های غیر Windows کار نمی کند و کاراکترهای یونیکد با .notdef glyph جایگزین می شوند؟

ما اغلب می توانیم .notdef glyph را به جای برخی از کاراکترهای یونیکد ببینیم. این معمولا یک جعبه یا یک سوال glyph است.

این به این دلیل است که تنظیمات بازگشتی Microsoft Office به طور پیش‌فرض انتخاب شده‌اند و فونت‌های Microsoft Office در دسترس نیستند. کاربران باید فونت های Microsoft Office را نصب کنند یا تنظیمات بازگشتی را تغییر دهند.


س: چرا ممکن است متن متن پیچیده، مانند تایلندی یا عبری، به دلایلی نادرست نمایش داده شود، مانند موقعیت اشتباه برای دیاکریتیک ها یا لیگاتورهای نادرست؟

برخی از فونت‌های اسکریپت پیچیده نیاز به پردازش ویژگی‌های تایپوگرافی پیشرفته دارند تا به درستی نمایش داده شوند. تایپوگرافی پیشرفته در Aspose.Words به طور پیش فرض غیرفعال است. کاربران باید تایپوگرافی پیشرفته را با TextShaperFactory فعال کنند.


س: آیا برای فونت هایی که استفاده می کنم به فایل های مجوز نیاز دارم؟

بله، شما انجام می دهید. بنابراین هنگام کپی کردن فونت ها به این نکته توجه داشته باشید که اکثر فونت ها دارای حق چاپ هستند. از قبل مجوزهای فونت را پیدا کنید و بررسی کنید که می توانند آزادانه به دستگاه دیگری منتقل شوند.

Mail Merge تو در تو

س: چرا هیچ فیلد ادغامی در خروجی تولید شده وجود ندارد؟

نام اصلی فیلد ادغام بدون جایگزین شدن با داده های مورد نیاز از منبع داده، ثابت می ماند، سپس:

  • بررسی کنید که داده ها به درستی در جداول بارگذاری شده اند: TableName را به درستی با همه کلیدها و روابط اولیه مورد نیاز تنظیم کنید.
  • بررسی کنید که فیلدهای ادغام به درستی نامگذاری شده باشند. از روش GetFieldNames برای دریافت نام همه فیلدهای ادغام استفاده کنید و اطمینان حاصل کنید که نام فیلدهای ادغام در قالب شما با نام منبع داده شما مطابقت دارد.

س: چرا خروجی ادغام تودرتو، داده هایی را از جدول فرزند برای اولین ورودی در جدول والد نمایش نمی دهد، اما همه موارد را برای آخرین ورودی در جدول والد نمایش می دهد، حتی مواردی که واقعاً به آن مرتبط نیستند؟

این به این دلیل است که مناطق ادغام در الگو به درستی تشکیل نشده‌اند، که می‌تواند باعث شود همه مناطق mail merge تودرتو نمایش هر چیزی را متوقف کنند. تگ باز StartTable و تگ بسته شدن EndTable باید مطابقت داشته باشند و در یک ردیف یا سلول باشند. به عنوان مثال، اگر شروع به تودرتو کردن مناطق ادغام شده در یک سلول از جدول کنید، باید منطقه ادغام را در همان ردیف سلول اول پایان دهید.


س: چرا هر ورودی از جدول والد، همه موارد موجود در جدول فرزند را نشان می دهد، حتی مواردی که واقعاً به آن پیوند ندارند؟

این به این دلیل است که رابطه بین جداول والد و فرزند تنظیم نشده است یا به درستی تنظیم نشده است. این مهم است که:

  • از یکپارچگی داده ها در DataSet خود اطمینان حاصل کنید و از شی DataRelation برای نشان دادن رابطه والد-فرزند بین جداول داده های مرتبط استفاده کنید.
  • بخش “نحوه تنظیم روابط داده در Nested Mail Merge با مناطق” را در مقاله Mail Merge تودرتو با مناطق بررسی کنید.

س: چرا یک استثنا وجود دارد: “System.ArgumentException: این محدودیت نمی تواند فعال شود زیرا همه مقادیر دارای مقادیر والد متناظر نیستند” در حین اجرای mail merge تودرتو؟

این به این دلیل اتفاق می‌افتد که هر رکورد والد دارای رکورد فرزند نیست، بنابراین منبع داده شما با معیارهای زیر مطابقت ندارد: هر ردیف در جدول والد باید یک رابطه یک به یک با ردیف‌های جدول فرزند بر اساس اولیه و کلیدهای خارجی.

هنگام ایجاد یک DataRelation، محدودیت های کلید خارجی را غیرفعال کنید.

پیوست یا درج یک سند

س: چرا محتوای ضمیمه شده به یک سند در همان صفحه ظاهر نمی شود؟

نتیجه ضمیمه به دلیل تفاوت در تنظیمات PageSetup برای بخش‌هایی که اسناد به یکدیگر ضمیمه می‌شوند، در یک صفحه جداگانه ظاهر می‌شود. تنظیمات PageSetup یکسان را برای بخش هایی که اسناد به هم ضمیمه شده اند انجام دهید.

تبدیل یک سند

س: چگونه PDF را به Word تبدیل کنیم؟

این بسیار آسان است، فقط یک سند را در مدل بارگیری کنید و آن را در هر فرمت پشتیبانی شده ذخیره کنید.

مثال کد زیر روند تبدیل یک فایل PDF به DOC را نشان می دهد:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

// Save the file into MS document format
pdfDocument.Save(_dataDir + "PDFToDOC_out.doc", SaveFormat.Doc); // .Docx, .Rtf, .WordML, etc.

س: چگونه DOCX را به PDF تبدیل کنیم؟

همچنین بسیار آسان است، فقط یک سند را در مدل بارگذاری کنید و آن را در هر قالب پشتیبانی شده ذخیره کنید.

مثال کد زیر فرآیند تبدیل یک فایل DOCX به PDF را نشان می دهد:

// Open the source DOCX document.
Document doc = new Document(_dataDir + "input.docx");

// Save the file to PDF format.
doc.Save(_dataDir + "output.pdf", SaveFormat.Pdf);

دستکاری با یک سند

س: چگونه یک سند را صفحه به صفحه تقسیم کنیم؟

Aspose.Words به شما امکان می دهد یک سند چند صفحه ای را صفحه به صفحه تقسیم کنید.

مثال کد زیر نحوه تقسیم یک سند و ذخیره هر صفحه به عنوان یک سند جداگانه را نشان می دهد:

Document doc = new Document(MyDir + "Big document.docx");

int pageCount = doc.PageCount;

for (int page = 0; page < pageCount; page++)
{
	// Save each page as a separate document.
	Document extractedPage = doc.ExtractPages(page, 1);
	extractedPage.Save(ArtifactsDir + $"SplitDocument.PageByPage_{page + 1}.docx");
}

س: چگونه یک رمزگذاری شده را باز کنیم سند؟

می توانید سعی کنید یک سند رمزگذاری شده را بدون رمز عبور باز کنید، که باید منجر به استثنا شود.

مثال کد زیر نحوه باز کردن یک سند رمزگذاری شده با رمز عبور را نشان می دهد:

// Create a document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Hello world!");

//OoxmlSaveOptions only applies to Docx, Docm, Dotx, Dotm, or FlatOpc formats.
OoxmlSaveOptions options = new OoxmlSaveOptions(SaveFormat.Docx);

// Set a password with which the document will be encrypted, and which will be required to open it.
options.Password = "MyPassword";
doc.Save(ArtifactsDir + "OoxmlSaveOptions.SaveAsDocx.docx", options);

// Open the encrypted document by passing the correct password in a `LoadOptions` object.
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Password.docx", new LoadOptions("MyPassword"));

Assert.AreEqual("Hello world!", doc.GetText().Trim());

س: چگونه یک سند را چاپ کنیم؟

فقط دو خط کد

مثال کد زیر نحوه چاپ یک سند را به دو روش نشان می دهد:

Document doc = new Document(MyDir + "PrintMe.docx");

// Below are two ways of printing our document.
// 1 -  Print using the default printer:
doc.Print();

// 2 -  Specify a printer that we wish to print the document with by name:
string myPrinter = PrinterSettings.InstalledPrinters[4];

doc.Print(myPrinter);

س: چگونه یک سند PDF را ویرایش کنیم؟

فقط PDF را در مدل سند Aspose.Words بارگیری کنید و تغییراتی را اعمال کنید.

مثال کد زیر نحوه ویرایش یک سند را نشان می دهد:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

DocumentBuilder builder = new DocumentBuilder(pdfDocument);
builder.MoveToDocumentEnd();
builder.Writeln("New paragraph with text");

pdfDocument.Save(_dataDir + "out.pdf", SaveFormat.Pdf);

Docker

س: چگونه از Aspose.Words در Docker استفاده کنیم؟

برای پاسخ دقیق، مقاله نحوه اجرای Aspose.Words در Docker را یاد بگیرید.