3
A
回答
3
我確信有幾種方法。但這是我如何做到的一個例子。我只是檢查頁面上的數據量,如果它是< 20個字節我不包括它:
public void removeBlankPdfPages(String pdfSourceFile, String pdfDestinationFile, boolean debug)
{
try
{
// step 1: create new reader
PdfReader r = new PdfReader(pdfSourceFile);
RandomAccessFileOrArray raf = new RandomAccessFileOrArray(pdfSourceFile);
Document document = new Document(r.getPageSizeWithRotation(1));
// step 2: create a writer that listens to the document
PdfCopy writer = new PdfCopy(document, new FileOutputStream(pdfDestinationFile));
// step 3: we open the document
document.open();
// step 4: we add content
PdfImportedPage page = null;
//loop through each page and if the bs is larger than 20 than we know it is not blank.
//if it is less than 20 than we don't include that blank page.
for (int i=1;i<=r.getNumberOfPages();i++)
{
//get the page content
byte bContent [] = r.getPageContent(i,raf);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
//write the content to an output stream
bs.write(bContent);
logger.debug("page content length of page "+i+" = "+bs.size());
//add the page to the new pdf
if (bs.size() > blankPdfsize)
{
page = writer.getImportedPage(r, i);
writer.addPage(page);
}
bs.close();
}
//close everything
document.close();
writer.close();
raf.close();
r.close();
}
catch(Exception e)
{
//do what you need here
}
}
4
C#(由格利揚的要求),它的工作原理
public static void removeBlankPdfPages(string pdfSourceFile, string pdfDestinationFile, bool debug) {
// step 0: set minimum page size
const int blankPdfsize = 20;
// step 1: create new reader
var r = new PdfReader(pdfSourceFile);
var raf = new RandomAccessFileOrArray(pdfSourceFile);
var document = new Document(r.GetPageSizeWithRotation(1));
// step 2: create a writer that listens to the document
var writer = new PdfCopy(document, new FileStream(pdfDestinationFile, FileMode.Create));
// step 3: we open the document
document.Open();
// step 4: we add content
PdfImportedPage page = null;
//loop through each page and if the bs is larger than 20 than we know it is not blank.
//if it is less than 20 than we don't include that blank page.
for (var i=1 ; i <= r.NumberOfPages; i++)
{
//get the page content
byte[] bContent = r.GetPageContent(i, raf);
var bs = new MemoryStream();
//write the content to an output stream
bs.Write(bContent, 0, bContent.Length);
Console.WriteLine("page content length of page {0} = {1}", i, bs.Length);
//add the page to the new pdf
if (bs.Length > blankPdfsize)
{
page = writer.GetImportedPage(r, i);
writer.AddPage(page);
}
bs.Close();
}
//close everything
document.Close();
writer.Close();
raf.Close();
r.Close();}
相關問題
- 1. 如何使用PDFSHarp從PDF中刪除空白頁面?
- 2. Sphinx文檔:從生成的PDF中刪除空白頁面?
- 3. 如何使用VB.NET刪除空白頁面表單pdf?
- 4. IText:如何在pdf中添加空白頁?
- 5. 如何使用Java中的iText從PDF文件中刪除頁眉和頁腳
- 6. 使用iText消除PDF中的所有空白空間
- 7. 如何計算PDF空白pdf頁面的數量還有空白PDF頁
- 8. 獲得額外的空白的PDF頁面在飛碟/ iText的
- 9. JasperReports:如何刪除子報表中的新頁面空白
- 10. 在UniversalImageLoader中從頁面查看器中刪除空白
- 11. 如何從mkdir中刪除空白()
- 12. 如何從BufferedReader中刪除空白行
- 13. 從TIFF文件中刪除空白(或接近空白)頁面的方法
- 14. iText PDF刪除特定頁面的頁眉
- 15. 從reportviewer控件中刪除輸出爲pdf的空白空間?
- 16. 從QTextEdit中刪除空白
- 17. 刪除頁面頂部的空白
- 18. 用perl檢測並刪除PDF文件中的空白頁
- 19. 如何刪除頁面上的所有空白或空格div?
- 20. 刪除PDF文件中的iText
- 21. 如何刪除網頁下的空白
- 22. IText如何調整頁面上的pdf
- 23. 如何從PDF中刪除重複的頁面?
- 24. 如何從iPhone中的NSString中刪除空白空間
- 25. 如何從eclipse中刪除空白麪板?
- 26. 刪除報告中的空白頁
- 27. 如何刪除多頁文檔中的空白頁?
- 28. 如何刪除SSRS報表中的頁眉頁空白
- 29. 如何使用Python從pdf文件中刪除頁面?
- 30. MPDF如何刪除空白頁邊
只有幾次。其他時間它不起作用。 – 2012-06-09 06:22:36