在拆分标签上拆分PDF文件/使用itextsharp剪切特殊页面



我想剪掉PDF文件中包含特殊字符串(splittag(的所有页面。到目前为止,我有这段代码,但它只是给出了源 PDF 的所有页面。那么它有什么问题呢?我遍历源 PDF 的页面并检查实际页面是否包含拆分标签,然后使用它创建一个新的 PDF 作为页码。如果有人能帮忙,那就太好了。谢谢!

iTextSharp.text.PdfReader reader = new iTextSharp.text.PdfReader(textBox3.Text);
string splittag = textBox2.Text;
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
if(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()).ToString().Contains(splittag)) ;
{
richTextBox1.Text = PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy());
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileStream(textBox5.Text + "\" + i + ".pdf", FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, i));
document.Close();
}                                        
}

我会使用以下代码:

public static List<Integer> determineSplits(String fileName) throws FileNotFoundException, IOException
{
PdfDocument pdfDocument = new PdfDocument(new PdfReader(fileName));
List<Integer> splitPages = new ArrayList<>();
for(int i=1;i<=pdfDocument.getNumberOfPages();i++) {
String pageTxt = PdfTextExtractor.getTextFromPage(pdfDocument.getPage(i));
if(pageTxt.contains("LoremIpsum"))
{
splitPages.add(1);
}
}
pdfDocument.close();
}

这将生成需要包含的页面列表。 然后,您可以使用iText代码分离出要使用的页面

public List<PdfPage> PdfDocument::copyPagesTo(int pageFrom,
int pageTo,
PdfDocument toDocument,
IPdfPageExtraCopier copier)

我现在在这里使用此代码。工作正常,更容易。

FileInfo file = new FileInfo(textBox2.Text);
using (PdfReader reader = new PdfReader(textBox2.Text))
{
for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++)
{
string filename = System.IO.Path.GetFileNameWithoutExtension(file.Name);
Document document = new Document();                                            
if(PdfTextExtractor.GetTextFromPage(reader, pagenumber, new SimpleTextExtractionStrategy()).Contains("LoremIpsum"))
{
PdfCopy copy = new PdfCopy(document, new FileStream(textBox3.Text + "\" + filename + pagenumber + ".pdf", FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, pagenumber));
document.Close();
}
}
}

最新更新