التعليمات

تحتوي هذه الصفحة على إجابات للأسئلة الأكثر شيوعاً. يرجى التعرف على الصفحة الحالية – ربما سيسمح لك هذا بحل مشكلتك بسرعة.

إذا لم تجد الإجابة على سؤالك، يمكنك أن تسأل في منتدى الدعم. للحصول على معلومات حول كيفية الإبلاغ عن سؤالك أو مشكلتك بشكل صحيح، راجع صفحة دعم فني.

عام

س: ما هو 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 ويتم استبدال أحرف Unicode بـ .notdef glyph؟

يمكننا غالبًا رؤية .notdef glyph بدلاً من بعض أحرف Unicode. هذا عادةً ما يكون مربعًا أو سؤالاً glyph.

وذلك لأن إعدادات Microsoft Office الاحتياطية محددة بشكل افتراضي، ولا تتوفر خطوط Microsoft Office. يتعين على المستخدمين تثبيت خطوط Microsoft Office أو تغيير الإعدادات الاحتياطية.


س: لماذا قد يتم عرض النص النصي المعقد، مثل التايلاندية أو العبرية، بشكل غير دقيق لسبب ما، مثل الموضع الخاطئ لعلامات التشكيل أو الحروف المركبة غير الدقيقة؟

تتطلب بعض خطوط البرامج النصية المعقدة معالجة ميزات الطباعة المتقدمة لعرضها بشكل صحيح. يتم تعطيل الطباعة المتقدمة في Aspose.Words افتراضيًا. يتعين على المستخدمين تمكين الطباعة المتقدمة باستخدام TextShaperFactory.


س: هل أحتاج إلى ملفات ترخيص للخطوط التي أستخدمها؟

نعم انت كذلك. لذلك، عند نسخ الخطوط، ضع في اعتبارك أن معظم الخطوط محمية بحقوق الطبع والنشر. حدد موقع تراخيص الخطوط مسبقًا وتحقق من إمكانية نقلها بحرية إلى جهاز آخر.

Mail Merge المتداخلة

س: لماذا لا توجد حقول مدمجة في المخرجات التي تم إنشاؤها؟

يبقى الاسم الأصلي لحقل الدمج كما هو دون استبداله بالبيانات المطلوبة من مصدر البيانات، ثم:

  • التحقق من تحميل البيانات بشكل صحيح في الجداول: قم بتعيين TableName بشكل صحيح مع جميع المفاتيح والعلاقات الأساسية المطلوبة.
  • تأكد من تسمية حقول الدمج بشكل صحيح. استخدم طريقة GetFieldNames للحصول على جميع أسماء حقول الدمج والتأكد من تطابق اسم حقول الدمج في القالب الخاص بك مع الاسم الموجود في مصدر البيانات الخاص بك.

س: لماذا لا يعرض ناتج الدمج المتداخل البيانات من الجدول الفرعي للإدخال الأول في الجدول الأصل، ولكنه يعرض كافة العناصر للإدخال الأخير في الجدول الأصل، حتى العناصر غير المرتبطة به فعليًا؟

وذلك لأن مناطق الدمج في القالب لم يتم تشكيلها بشكل صحيح، مما قد يجعل جميع مناطق mail merge المتداخلة تتوقف عن عرض أي شيء على الإطلاق. يجب أن تتطابق علامة فتح StartTable وعلامة إغلاق EndTable وأن تكونا في نفس الصف أو الخلية. على سبيل المثال، إذا بدأت في تداخل مناطق الدمج في خلية جدول، فيجب عليك إنهاء منطقة الدمج في نفس صف الخلية الأولى.


س: لماذا يعرض كل إدخال من الجدول الأصل كل عنصر في الجدول الفرعي، حتى العناصر غير المرتبطة به فعليًا؟

ويرجع ذلك إلى عدم إعداد العلاقة بين الجداول الأصل والجداول الفرعية أو أنه تم إعدادها بشكل غير صحيح. من الضروري:

  • تأكد من سلامة البيانات داخل DataSet الخاص بك واستخدم كائن DataRelation لتمثيل العلاقة بين الوالدين والطفل بين جداول البيانات ذات الصلة.
  • راجع قسم “كيفية إعداد علاقات البيانات في 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.