如何创建一个动作以在页面上打开另一个PDF,并在iTextSharp中缩放适合页面?

时间:2016-08-12 14:17:06

标签: c# .net pdf itext

如何制作PdfAction以在缩放级别Fit Page的特定页面上打开另一个PDF? PdfAction的构造函数之一采用PDF路径和目标页码,但默认缩放为Fit Width。我没有看到任何包含'desired zoom'参数的方法/构造函数。我没有看到它,或者在PdfAction完成后是否有办法更改缩放级别?

这是我到目前为止的代码:

var pdfAnnotation = PdfAnnotation.CreateLink(
    pdfStamper.Writer,
    linkOutline,
    PdfAnnotation.HIGHLIGHT_NONE,
    new PdfAction(pdfPath, targetPageNumber));

pdfAnnotation.BorderStyle = new PdfBorderDictionary(0.0F, 0);

pdfStamper.AddAnnotation(pdfAnnotation, sourcePageNumber);

1 个答案:

答案 0 :(得分:1)

我不确定这是否是我问题的惯用解决方案,但我可以在创建PdfAction后通过替换其中一个哈希表值来更新缩放级别:

var action = new PdfAction(pdfPath, targetPageNumber);

action.Remove(PdfName.D);
action.Put(PdfName.D, new PdfLiteral($@"[{targetPageNumber - 1} /Fit]"));


var pdfAnnotation = PdfAnnotation.CreateLink(
    pdfStamper.Writer,
    linkOutline,
    PdfAnnotation.HIGHLIGHT_NONE,
    action);

pdfAnnotation.BorderStyle = new PdfBorderDictionary(0.0F, 0);


pdfStamper.AddAnnotation(pdfAnnotation, sourcePageNumber);