Я включил файл xml в pdf / a2, используя itext7 и c#.
Поток xml был вставлен в дерево имен pdf как XFAResource.
Кажется, все в порядке, но, сравнивая мой pdf-файл с pdf-файлом, использованным в качестве примера, я замечаю небольшую разницу в типе длины потока.
В моем pdf длина - это просто целочисленное значение, в основном pdf это объект с параметром длины, который содержит целочисленное значение.
Я понятия не имею, как это исправить.
Здесь мой код и снимок экрана дерева имен (itext-rups) из 2 pdf, которые лучше указывают на различия.
Спасибо всем, есть подсказка.
Mauro
using iText.Forms;
using iText.Kernel.Pdf;
using iText.Pdfa;
using iText.Layout.Element;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
namespace PdfXml
{
class Program
{
static void Main(string[] args)
{
string pdfIn = "\\xfar\\pdfin.pdf";
string pdfOut = "\\xfar\\pdfoutU.pdf";
string cdaIn = "\\xfar\\cda.xml";
StreamReader Reader = new StreamReader(cdaIn);
var content = new StringBuilder();
string line;
while (Reader.EndOfStream == false)
{
line = Reader.ReadLine();
content.AppendLine(line);
}
byte[] bytes = Encoding.ASCII.GetBytes(content.ToString());
PdfDocument pdfDoc = new PdfDocument(new PdfReader(pdfIn), new PdfWriter(pdfOut));
PdfStream stream = new PdfStream();;
PdfNameTree nameTree1 = pdfDoc.GetCatalog().GetNameTree(new PdfName("XFAResource"));
stream.SetCompressionLevel(9);
stream.SetData(bytes, true);
nameTree1.AddEntry("dataset", stream);
nameTree1.BuildTree();
nameTree1.SetModified();
Console.WriteLine("ok");
}
pdfDoc.Close();
}
}
}
снимок экрана дерева имен :