在C#中打开PDF文件的特定页面

3
当我的表单加载时,我使用以下代码打开一个pdf文件:
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
process.StartInfo = startInfo;
startInfo.FileName = @"F:\STAGE\test.pdf";
process.Start();

这个代码可以正常工作,但现在我想打开一个指定的页面。例如文档test.pdf的第5页?有人有什么想法吗?我尝试了一些方法,但都没有成功!

谢谢!

5个回答

3

尝试

process.StartInfo.Arguments = "/A \"page=n\" \"F:\\STAGE\\test.pdf"";

n更改为您想要的页码。

1
请看这里:http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf。它解释了Adobe Reader可以接收哪些参数,并且其中包含一个页面参数。
你的代码应该是:
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
process.StartInfo = startInfo;
startInfo.Arguments = "/A \"page=N\"";
startInfo.FileName = @"F:\STAGE\test.pdf";
process.Start();

其中 N 代表您的页码。


1
程序仍然在第一页打开。尽管我用5替换了N。 - thijs1095

0

你可以尝试这段代码。

  Process myProcess = new Process();
  myProcess.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe";
  myProcess.StartInfo.Arguments = "/A \"page={pagenum}\" \"c:\\Classic\\Manual\\DocumentationManual.pdf\"";
  myProcess.Start();

请根据您的目录更改AcroRd32.exe的路径。
谢谢。

这个程序可以提取PDF中的特定页面吗?如果想要提取不连续的不同页面怎么办? - Azurespot

0

试试这个。 注意:在使用axAcroPDF之前,您必须在计算机上安装Acrobat Reader。

            int n = 5; //page number
            string filePath = "F:\STAGE\test.pdf";

            axAcroPDF1.LoadFile(filePath);
            axAcroPDF1.setCurrentPage(n); 

0

按照这里建议的方式调用它:Adobe Reader命令行参考

那么它应该是:

    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "EXE_PATH\\AcroRd32.exe";
    startInfo.Arguments = "/A \"page=PAGE_NUM\" \"FILE_PATH\"";
    Process.Start(startInfo);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接