יצירת PDF מתויג פירושה להוסיף (או ליצור) אלמנטים מסוימים למסמך שיאפשרו לוודא את המסמך בהתאם לדרישות PDF/UA. לאלמנטים אלו קוראים לעיתים אלמנטי מבנה.

הקטע קוד הבא פועל גם עם ספריית Aspose.PDF.Drawing.

יצירת PDF מתויג (תרחיש פשוט)

על מנת ליצור אלמנטי מבנה במסמך PDF מתויג, Aspose.PDF מציעה שיטות ליצירת אלמנט מבנה באמצעות ממשק ITaggedContent. הקטע קוד הבא מראה איך ליצור PDF מתויג שמכיל שני אלמנטים: כותרת ראשית ופסקה.

private static void CreateTaggedPdfDocument01()
{
    // יצירת מסמך PDF
    var document = new Document();

    // קבלת תוכן לעבודה עם TaggedPdf
    ITaggedContent taggedContent = document.TaggedContent;
    var rootElement = taggedContent.RootElement;
    // הגדרת כותרת ושפה למסמך
    taggedContent.SetTitle("Tagged Pdf Document");
    taggedContent.SetLanguage("en-US");

    // 
    HeaderElement mainHeader = taggedContent.CreateHeaderElement();
    mainHeader.SetText("Main Header");

    ParagraphElement paragraphElement = taggedContent.CreateParagraphElement();
    paragraphElement.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
    "Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. " +
    "Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet" +
    "nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus." +
    "Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat" +
    "sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper" +
    "pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus" +
    "ac iaculis eget, tempus et magna. Sed non consectetur elit. Sed vulputate, quam sed lacinia luctus," +
    "ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");

    rootElement.AppendChild(mainHeader);
    rootElement.AppendChild(paragraphElement);

    // שמירת מסמך PDF מתויג
    document.Save("C:\\Samples\\TaggedPDF\\Sample1.pdf");
}

נקבל את המסמך הבא לאחר יצירתו:

מסמך PDF עם תיוג עם 2 אלמנטים - כותרת ופסקה

יצירת מסמך PDF עם תיוג עם אלמנטים מקוננים (יצירת עץ אלמנטים של מבנה)

במקרים מסוימים, אנו צריכים ליצור מבנה מורכב יותר, לדוגמה, להציב ציטוטים בפסקה. כדי ליצור עץ אלמנטים של מבנה עלינו להשתמש בשיטת AppendChild. קטע הקוד הבא מראה כיצד ליצור עץ אלמנטים של מבנה של מסמך PDF עם תיוג:

private static void CreateTaggedPdfDocument02()
{
    // יצירת מסמך Pdf
    var document = new Document();

    // קבלת תוכן לעבודה עם TaggedPdf
    ITaggedContent taggedContent = document.TaggedContent;
    var rootElement = taggedContent.RootElement;
    // הגדרת כותרת ושפה למסמך
    taggedContent.SetTitle("מסמך PDF עם תיוג");
    taggedContent.SetLanguage("en-US");

    HeaderElement header1 = taggedContent.CreateHeaderElement(1);
    header1.SetText("רמת כותרת 1");

    ParagraphElement paragraphWithQuotes = taggedContent.CreateParagraphElement();
    paragraphWithQuotes.StructureTextState.Font = FontRepository.FindFont("Calibri");
    paragraphWithQuotes.StructureTextState.MarginInfo = new MarginInfo(10, 5, 10, 5);

    SpanElement spanElement1 = taggedContent.CreateSpanElement();
    spanElement1.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. ");
    QuoteElement quoteElement = taggedContent.CreateQuoteElement();
    quoteElement.SetText("Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa.");
    quoteElement.StructureTextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
    SpanElement spanElement2 = taggedContent.CreateSpanElement();
    spanElement2.SetText(" Sed non consectetur elit.");

    paragraphWithQuotes.AppendChild(spanElement1);
    paragraphWithQuotes.AppendChild(quoteElement);
    paragraphWithQuotes.AppendChild(spanElement2);

    rootElement.AppendChild(header1);
    rootElement.AppendChild(paragraphWithQuotes);

    // שמירת מסמך PDF עם תיוג
    document.Save("C:\\Samples\\TaggedPDF\\Sample2.pdf");
}

נראה את המסמך הבא לאחר יצירה: מסמך PDF מתויג עם אלמנטים מקוננים - span ומרכאות

עיצוב מבנה טקסט

כדי לעצב מבנה טקסט במסמך PDF מתויג, Aspose.PDF מציע את התכונות Font, FontSize, FontStyle ו-ForegroundColor של מחלקת StructureTextState. קטע הקוד הבא מראה כיצד לעצב מבנה טקסט במסמך PDF מתויג:

// לדוגמאות מלאות וקבצי נתונים, אנא עבורו ל https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// הנתיב לספריית המסמכים.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// יצירת מסמך PDF
Document document = new Document();

// קבלת תוכן לעבודה עם TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;

// הגדרת כותרת ושפה למסמך
taggedContent.SetTitle("מסמך PDF מתויג");
taggedContent.SetLanguage("en-US");

ParagraphElement p = taggedContent.CreateParagraphElement();
taggedContent.RootElement.AppendChild(p);

// בפיתוח
p.StructureTextState.FontSize = 18F;
p.StructureTextState.ForegroundColor = Color.Red;
p.StructureTextState.FontStyle = FontStyles.Italic;

p.SetText("טקסט אדום נטוי.");

// שמירת מסמך PDF מתויג
document.Save(dataDir + "StyleTextStructure.pdf");

המחשת אלמנטים מבניים

על מנת להמחיש אלמנטים מבניים במסמך PDF מתויג, Aspose.PDF מציעה את המחלקה IllustrationElement. הקטע הבא מציג כיצד להמחיש אלמנטים מבניים במסמך PDF מתויג:

// לדוגמאות מלאות וקבצי נתונים, אנא עברו ל https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// הנתיב לספריית המסמכים.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// יצירת מסמך PDF
Document document = new Document();

// קבלת תוכן לעבודה עם PDF מתויג
ITaggedContent taggedContent = document.TaggedContent;

// הגדרת כותרת ושפה למסמך
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// תחת פיתוח
IllustrationElement figure1 = taggedContent.CreateFigureElement();
taggedContent.RootElement.AppendChild(figure1);
figure1.AlternativeText = "דמות אחת";
figure1.Title = "תמונה 1";
figure1.SetTag("Fig1");
figure1.SetImage("image.png");

// שמירת מסמך PDF מתויג
document.Save(dataDir + "IllustrationStructureElements.pdf");

אימות PDF מתויג

Aspose.PDF עבור .NET מספקת את היכולת לאמת מסמך PDF/UA מתויג. אימות תקן PDF/UA תומך:

  • בדיקות עבור XObjects
  • בדיקות עבור Actions
  • בדיקות עבור תוכן אופציונלי
  • בדיקות עבור קבצים מוטמעים
  • בדיקות עבור שדות Acroform (אימות שפה טבעית ושם חלופי וחתימות דיגיטליות)
  • בדיקות עבור שדות טופס XFA
  • בדיקות עבור הגדרות אבטחה
  • בדיקות עבור ניווט
  • בדיקות עבור הערות

הקטע קוד להלן מראה איך לבצע אימות של מסמך PDF מתויג. בעיות תואמות יוצגו בדו"ח הלוג ב-XML.

// לדוגמאות מלאות וקבצי נתונים, אנא עבור ל https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// הנתיב לתיקיית המסמכים.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string inputFileName = dataDir + "StructureElements.pdf";
string outputLogName = dataDir + "ua-20.xml";

using (var document = new Aspose.Pdf.Document(inputFileName))
{
    bool isValid = document.Validate(outputLogName, Aspose.Pdf.PdfFormat.PDF_UA_1);

}