我有一些带有很多床单的pdf。 我在这些文件中制作了一个serach,我有一个列表,其中包含找到字符串的页面数字。 现在我必须将这些文件打开到确切的页面,可能使用缩放和显示结果的矩形。
有什么想法吗?
P.S。我用来阅读和打开pdf文件的代码是:
Dim reader As New PdfReader(FileToOpen)
Dim stamper As New PdfStamper(reader, New System.IO.FileStream("j:\Zoom.pdf", FileMode.Open, FileAccess.ReadWrite))
Dim pdfDest As New PdfDestination(PdfDestination.FITH)
Dim OA As PdfAction = PdfAction.GotoLocalPage(2, pdfDest, stamper.Writer)
stamper.Writer.SetOpenAction(OA)
stamper.Close()
reader.Close()
答案 0 :(得分:1)
我几乎将此问题视为How to set initial view properties?的副本,因为我在官方iText文档中发现了一个包含Stack Overflow链接的问题:How to set initial view properties?
作为How to set zoom level to pdf using iTextSharp?的副本(请参阅How to set the zoom level of a PDF using iTextSharp?)
但是,我看到官方iText网站上的答案比Stack Overflow上的答案要好,因为它结合了您需要知道的所有内容。
简而言之:你需要一个开放的行动:
//Create a destination that fit's width (fit horizontal)
var D = new PdfDestination(PdfDestination.FITH);
//Create an open action that points to a specific page using this destination
var OA = PdfAction.GotoLocalPage(1, D, stamper.Writer);
//Set the open action on the writer
stamper.Writer.SetOpenAction(OA);
显然,您可以在定义D
时选择创建另一个目的地。
如果您有任何机会使用iText 7,那么您应该阅读chapter 7教程的iText 7: Building Blocks以了解开放行动,并chapter 6了解所有可能的目的地(XYZ) ,FitH,FitB,...)被解释。
请在发布问题前阅读文档。