ITextSharp在页面索引处打开pdf并进行缩放

时间:2016-08-22 08:50:29

标签: visual-studio pdf itext

我有一些带有很多床单的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()

1 个答案:

答案 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,...)被解释。

请在发布问题前阅读文档。