До сих пор самый простой способ сделать это, чтобы создать новый PDF с нужной таблицей в нужном месте , а затем поместите его в существующий PDF-файл. Это можно сделать в коде, используя (например) класс PdfStamper
, но есть также автономные инструменты, такие как pdftk
и многие другие. Не думайте об этом, как о «редактировании» PDF-файла, подумайте об этом как о том, чтобы отбросить что-то новое поверх оригинала.
pdftk original.pdf stamp newtable.pdf output combined.pdf
Действительно интересные и потенциально трудная часть затрагивались @ MKL изначальном вопрос - как же определить правильное положение новой таблицы. Если вы можете придумать геометрическое правило, то вы в хорошей форме. Если это связано с любым анализом исходного файла, вы должны знать, что что-то вроде (казалось бы) простое, так как определение количества строк в существующей таблице иногда может быть чрезвычайно сложным. По всей видимости, как тег html <table>
, который похож на поток контента. Примером фактического PDF будет очень полезно. Образ PDF - это не одно и то же.
Чтобы дать вам некоторую справочную информацию, разбор макета PDF-файла прост, это то, что делают читатели PDF. Разбор содержимого PDF полностью отличается и намного сложнее. Так же, как пример, вы можете опубликовать изображение PDF сверху вниз, или верхние и нижние колонтитулы можно рисовать сначала, а затем все жирные элементы лица, за которыми следует простой текст. Просто потому, что две вещи находятся рядом друг с другом в физическом макете, это не значит, что они находятся рядом друг с другом в структуре файла, дереве объектов или потоке содержимого. Это векторный рисунок, а не текстовый файл или растровое изображение. PDF-файлы не предназначены для редактирования, если только созданное им программное обеспечение не дает информации о том, как редактировать контент. Есть много вещей, которые кажутся такими, как должно быть быть легким, но как только вы поймете, как создается PDF-документ, имеет смысл, что это сложно. Я не говорю об этом, чтобы отговорить вас, просто чтобы вы оценили масштаб задачи. Если вы можете проследить исходный документ, из которого был создан этот PDF-файл, я гарантирую, что у вас будет больше успеха с меньшими разочарованиями.
Вы упомянули iTextSharp. Эта библиотека позволяет манипулировать существующими pdf-файлами с использованием класса PdfStamper. Более интересным является вопрос о том, как распознать позицию в существующем PDF, чтобы добавить новые данные. – mkl
Привет, Mkl спасибо за ваши комментарии. как я могу распознать позицию в существующем формате pdf, чтобы добавить таблицу. Можете ли вы привести какой-нибудь пример? –
Можете ли вы привести какой-нибудь пример? Нет, потому что вы спрашиваете то, что невозможно во многих случаях (не для всех).Вот почему mkl писал, что вопрос о том, как распознать позицию в существующем PDF, является более интересным вопросом. Если вы не можете ответить на этот вопрос (потому что вы, вероятно, спрашиваете то, что невозможно), ваш фактический вопрос не имеет значения. Никто не может ответить на этот вопрос, потому что никто не знает, как выглядит существующий PDF. –