Я использую iText7 (версия dotnet) для объединения нескольких документов PDF / UA в один.
Исходные документы полностью помечены и иным образом доступны (для проверки используйте инструмент PAC3).Но в объединенном PDF есть несколько проблем с доступностью, наиболее заметные теги H1 и H2 удаляются в документах слияния.
Автор @ bruno-lowagie указал в комментариях здесь , что iText7 долженподдерживаю это, и я просмотрел все примеры / учебники, которые смог найти, но не могу найти способ объединить и сохранить все теги.
Это мой пример кода:
public static void CombineMultiplePDFs(string[] fileNames, string outFile)
{
var writerProperties = new WriterProperties()
.AddUAXmpMetadata()
.AddXmpMetadata();
PdfDocument pdf = new PdfDocument(new PdfWriter(outFile, writerProperties));
pdf.SetTagged();
pdf.GetCatalog().SetLang(new PdfString("en-US"));
var viewerPreferences = new PdfViewerPreferences().SetDisplayDocTitle(true);
pdf.GetCatalog()
.SetViewerPreferences(viewerPreferences);
PdfDocumentInfo info = pdf.GetDocumentInfo();
info.SetTitle("iText7 PDF/UA example");
info.SetCreator("A Creator").SetAuthor("An Author");
var merger = new PdfMerger(pdf, false, false);
merger.SetCloseSourceDocuments(true);
var srcPdfs = new List<PdfDocument>();
foreach (var fileName in fileNames)
{
PdfDocument srcPdf = new PdfDocument(new PdfReader(fileName));
srcPdfs.Add(srcPdf);
merger.Merge(srcPdf, 1, srcPdf.GetNumberOfPages());
}
merger.Close();
pdf.Close();
}
Пожалуйста, не пытайтесь не закрывать исходные документы до конца и т. Д.
Как объединить несколько документов PDF / UA в один и сохранить все теги / специальные возможности?