Преобразование PDF в PDFA1-A с помощью iTextSharp - PullRequest
0 голосов
/ 05 января 2011

Я хочу загрузить простой файл PDF в iText и экспортировать его (или записать) в формате PDF / A1-A.

У меня есть «iText в действии с. Редактировать» вручную и с помощью iTextSharp. Все еще прогресс == ноль.

Ответы [ 3 ]

7 голосов
/ 07 января 2011

Привет, Леонард.(Леонард работает в Adobe в качестве своего парня-евангелиста в формате PDF. Его PDF-Fu - Могучий . Я воздержусь от сравнения нашей мощи в какой-то смутной попытке лживой скромности.)>:)

Произвольный PDF -> PDF / A1-A практически невозможен.1-A требует огромную кучу информации о форматировании, встроенной в ваши теги ... примерно столько информации, сколько вам нужно для перестроения PDF, так и html / css.

Исходя из "это кучастроки и символы с этими координатами "to", это таблица с X столбцами и Y строками, а следующая информация в ее ячейках "чрезвычайно сложна.Все, но невозможно.

PDF / A1-b намного реалистичнее, хотя и не так просто.Вам нужно поместить все в определенный набор цветовых пространств и визуализировать намерения и вещи с молекулярными структурами, которые ваш примитивный интеллект не мог бы понять .

(Ужасная неверная цитата, но там все еще есть что-то смешное, поэтому я оставил ее.)

iText [Sharp] поддерживает генерацию PDF / A в той же степени, что и онаскажет вам, когда вы делаете что-то явно против спецификации ... но он может не поймать это, пока вы не вызовете document.close ().Программисту, пишущему генератор, все еще нужно заполнить весь пакет информации «вручную».

Никто не может сказать, что «мы возьмем какой-нибудь произвольный PDF и превратим его в PDF / A-1a»(не лёжа сквозь зубы).Вы указываете мне на какое-то программное обеспечение, которое говорит так, и я дам вам совершенно правильный PDF, который сломает его.КАЖДЫЙ РАЗ.Я бы поставил на это деньги.

Вам нужна копия спецификации ISO / PDF ($).Вам нужна копия спецификации ISO в формате PDF ( бесплатно! ).Вам нужно знать их.И тогда вы поймете, с чем вы столкнулись.

Теперь все это «Произвольный PDF».Если у вас есть стек экземпляров какого-либо отчета, поступающих из одной и той же программы, то в конце туннеля есть индикатор.Это все еще длинный туннель, но проблема ухудшается до «жесткого» вместо «почти невозможного».И как только у вас будет работать один отчет, передача похожих отчетов из ОДНОГО ЖЕ ПРИЛОЖЕНИЯ, вероятно, будет относительно легкой.

Все еще не весело.

1 голос
/ 05 января 2011

iText не поддерживает преобразование PDF-> PDF / A "из коробки".

Конечно, вы могли бы использовать API низкого уровня в библиотеке в качестве отправной точки для написания такого конвертера ... но это будет только начало ...

0 голосов
/ 18 мая 2011

Попробуйте это.

        PdfStamper pst = null;

        PdfReader reader = new PdfReader(GetTemplateBytes());
        pst = new PdfStamper(reader, Response.OutputStream);

        pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
        pst.Writer.PDFXConformance = PdfWriter.PDFA1A;
...