2014-01-23 5 views
-1

Я хочу программно отредактировать PDF-файл, используя мой код C#. Я знаю, что это сложно. Можно ли использовать itextsharp? или что является альтернативой.Как редактировать PDF с помощью iTextSharp?

+0

Вы имеете в виду настоящую редакцию или просто помещают некоторые черные капли на страницу? Последнее легко сделать; для первого вы можете использовать iText (Sharp) в качестве фреймворка для извлечения содержимого и записи обратно с соответствующими изменениями, но ваша задача по-прежнему огромна. – mkl

+0

Спасибо. Мое требование - помеченный/удаленный текст не должен появляться в распечатке/просмотре pdf, возможно ли это с черным blobs? Пожалуйста, направляйте. – user3122606

+0

* Черные blobs * означали метафорически, чтобы описать процесс просто покрасить черный текст (или некоторую подобную форму) над текстом. Текст ниже не будет отображаться в печати и не будет сразу отображаться в программе просмотра PDF. Но он будет там, все еще и может быть извлечен, например. копированием и вставкой. Если все в порядке, я опишу, как это сделать. – mkl

ответ

0

Как ОП осветленной в комментариях к вопросу:

отмеченная/исключенные текст не должен появляться в печати/вид PDF

Таким образом, здесь простое решение, которое просто рисуя черный текст над текстом. Текст ниже не будет отображаться в печати и не будет сразу отображаться в программе просмотра PDF. Но он будет там, все еще и может быть извлечен, например. по копии & паста.

Кроме того, поскольку я больше дома с Java, я предоставляю код в Java для iText. Это должно быть легко портировать на iTextSharp, хотя, заменив getX на GetX или X, setX на SetX или X и method() по Method() и с помощью некоторых .Net потока вместо FileOutputStream:

PdfReader reader = new PdfReader("source.pdf"); 
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("target.pdf")); 

PdfContentByte content = stamper.getOverContent(1); 
content.setColorFill(BaseColor.BLACK); 

// Do this for every rectangle given as x, y, width, heigth 
content.rectangle(100f, 600f, 200f, 100f); 
// Done 

content.fill(); 

stamper.close(); 
reader.close(); 
+0

Спасибо, это нормально, если я могу обеспечить координаты правильно, но я не могу обеспечить/захватить точные координаты, особенно потому, что он зависит от уровня масштабирования элемента управления зрителя. Также я узнал, что Acrobat SDK теперь свободен, тогда я могу использовать его для выполнения редактирования? Или получить фактические координаты из средства просмотра просмотра PDF? – user3122606

+0

Я понятия не имею, что вы можете сделать с этим SDK и как вы можете извлечь правильные координаты из этого элемента управления зрителем. Если вы хотите использовать внешние компоненты, например. iText (Sharp), однако, они, очевидно, должны знать правильные координаты. – mkl

0

возможности Redaction недавно был добавлен в iTextSharp 5.5.5. См. Также это thread и change log

+0

Обратите внимание, что эта функция является недавним дополнением и все еще находится в стадии разработки, чтобы стать пригодной для использования в реальных контекстах безопасности. – mkl

Смежные вопросы