簡體   English   中英

為什么PdfSharp在Web鏈接上創建邊框?

[英]Why is PdfSharp creating borders around web links?

我有以下功能來使用PdfSharp創建一個weblink:

    public static void AddWebLink(XGraphics gfx, PdfPage page, XFont font, string url, string text, int startX, int startY)
    {
        if (gfx == null)
            throw new ArgumentNullException("gfx");

        if (page == null)
            throw new ArgumentNullException("page");

        if (font == null)
            throw new ArgumentNullException("font");

        // Write out the text
        gfx.DrawString(text, font, XBrushes.Blue, new PointF(startX, startY));
        var stringSize = gfx.MeasureString(text, font);

        // Create the linked area
        // For some reason the Y of the rectangle needs to be startY minus the height
        startY -= (int)stringSize.Height;

        var rect = gfx.Transformer.WorldToDefaultPage(new XRect(startX, startY, stringSize.Width, stringSize.Height));
        var pdfRect = new PdfRectangle(rect);
        var annotation = page.AddWebLink(pdfRect, url);
        annotation.Opacity = 0; // Try and prevent it from rendering a box around the link in some viewers
    }

生成PDF時,在福昕閱讀器中查看時一切正常:

福克斯圖像

但是,Adobe Acrobat Reader 10和11在鏈接區域周圍顯示黑色邊框:

Acrobat http://dl.dropbox.com/u/6753359/acrobat-bad.PNG

不幸的是,由於Acrobat Reader更標准,因此它必須看起來正確。

有人可以告訴我為什么我的所有鏈接區域都在acrobat閱讀器中獲得邊界?


編輯:我試圖通過annotation.Opacity = 0annotation.Color = XColor.FromArgb(255, 255, 255, 255);使注釋不可見annotation.Color = XColor.FromArgb(255, 255, 255, 255); 前者不起作用(邊界仍然出現),后者使邊界白色不能100%起作用,因為它會在某些文本行中產生奇怪(如白色線條切斷y的底部,p等等。 )。

這是一個眾所周知的問題。

解決方案可以在這里找到: http//forum.pdfsharp.net/viewtopic.php?p = 6161#p6161

該框架是PDFsharp中的錯誤。 這是Adobe Reader中的一個錯誤,最高10.0.3不顯示框架。

更新:該錯誤已在很久以前得到修復,並且使用最新版本創建的鏈接將不會有圍繞它們的框架。

我解決了這個問題:

1.)從CodePlex下載最新版本的PDFSharp

2.)從新的PdfLiteral修改PdfLinkAnnotations.cs第120行new PdfLiteral("<</Type/Border>>"); new PdfLiteral("<</Type/Border/W 0>>");

3.)編譯PDFSharp項目

4.)更改使用PDFSharp的項目以使用新編譯的.dll。

希望這個簡單的全包解釋能幫助他人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM