2017-09-05 6 views
1

PDF의 여러 텍스트 상자를 일괄 삭제하려면 어떻게해야합니까?PDF의 텍스트 삭제 일괄 처리

시나리오는 제가 삭제하려는 각 페이지의 상단과 하단에 텍스트 상자가있는 PDF 문서가 여러 개 있습니다. 마스터 PDF 편집기와 같은 소프트웨어를 사용하여 수동으로이 작업을 수행 할 수 있지만이 문서에는 500 페이지가 넘으며 여러 문서가 처리됩니다. 나는 이들이 텍스트 박스이고 헤더/푸터가 아니라고 확신한다.

의견이 있으십니까?

답변

3

Easy,

와 iText7을 pdfSweep과 함께 사용하십시오. iText는 PDF 문서에서 정보를 작성, 편집 및 추출 할 수있는 PDF 툴킷입니다.

pdfSweep (이름에서 알 수 있듯이) iText의 수정 기능을 제공합니다. 사각형 (및 곧 정규 표현식)이 주어지면 특정 페이지 또는 페이지 범위의 내용을 수정할 수 있습니다.

pdfSweep은 지정된 사각형 내에있는 모든 콘텐츠를 제거합니다.

간단히 수정 주석을 만든 다음 Adobe Reader에서 일괄 제거 할 수도 있습니다. iText는 또한 수정 주석 만들기를 지원합니다.

using (Stream stream = new FileStream(
fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { 
PdfReader pdfReader = new PdfReader(stream); 
using (PdfStamper stamper = new PdfStamper(
    pdfReader, new FileStream(newFileName, FileMode.OpenOrCreate))) { 
    int page = 1; 
    iTextSharp.text.Rectangle rect = 
     new iTextSharp.text.Rectangle(500, 50, 200, 300); 
    PdfAnnotation annotation = new PdfAnnotation(stamper.Writer, rect); 
    annotation.Put(PdfName.SUBTYPE, new PdfName("Redact")); 
    annotation.Title = "My Author"; 
    annotation.Put(new PdfName("Subj"), new PdfName("Redact")); 
    float[] fillColor = { 0, 0, 0 }; 
    annotation.Put(new PdfName("IC"), new PdfArray(fillColor)); 
    float[] fillColorRed = { 1, 0, 0 }; 
    annotation.Put(new PdfName("OC"), new PdfArray(fillColorRed)); 
    stamper.AddAnnotation(annotation, page); 
} 

}

iText를하고 pdfSweep 자바 또는 C#에서 사용할 수 있습니다.

는 편집 주석을 생성하는 방법에 iText를 웹 사이트에서 상당히 포괄적 인 예를있다 : http://developers.itextpdf.com/question/how-create-and-apply-redactions

+0

감사 요리스,하지만 난 약간 간단한 해결책을 기대했다. 아마도 빨간색 gui 기반의 PDF 편집기 도구를 사용합니까? – Mark

+0

내가 아는 한 최선을 다하자면 모든 종류의 컨텐츠 처리 (특히 일괄 처리)를 수행하자마자 일부 코드를 수행해야하는 상황으로 신속하게 확대 될 것입니다. –

+0

의미가 있습니다. iText7과 pdfSweep은 무료입니까? 방금 설치하고, 예제를 작성하고, 컴파일하고 실행합니까? 분명히 내 필요에 맞게 조정하십시오. – Mark