Как добавить ссылку на файл в PdfSharp? - PullRequest
3 голосов
/ 03 марта 2009

Я не могу заставить PdfSharp показать картинку для этой аннотации. У него нет свойства PdfAnnotation.Icon, поэтому я не могу установить его.

XFont font = new XFont("Verdana", 10);
PdfPage page = wDoc.Parent.Page;
XGraphics gfx = wDoc.Parent.gfx;
XRect rec = gfx.Transformer.WorldToDefaultPage(new XRect(new XPoint(30, 60), new XSize(30, 30)));
PdfRectangle rect = new PdfRectangle(rec);
PdfLinkAnnotation link = PdfLinkAnnotation.CreateFileLink(rect, wDoc.FileLocation);
gfx.DrawString("These files were attached:", font, XBrushes.Black, 30, 50, XStringFormat.Default);

link.Rectangle = new PdfRectangle(rec);
page.Annotations.Add(link);

Я получил это далеко, и аннотация существует, за исключением того, что это пустое поле! Как мне заставить его что-то сказать или даже просто показать картинку?

Ответы [ 3 ]

3 голосов
/ 07 ноября 2009

Вам необходимо использовать page.AddWebLink (AREArect), а затем добавить текстовую область с помощью gfx.drawstring (AREArect)

2 голосов
/ 02 февраля 2016

пример кода для Uri использования:

...
PdfDocument pdfDoc = PdfReader.Open(myUri.LocalPath, PdfDocumentOpenMode.Import);
PdfDocument pdfNewDoc = new PdfDocument();
for (int i = 0; i < pdfDoc.Pages.Count; i++)
{
   PdfPage page = pdfNewDoc.AddPage(pdfDoc.Pages[i]);
   XFont fontNormal = new XFont("Calibri", 10, XFontStyle.Regular);    
   XGraphics gfx = XGraphics.FromPdfPage(page);
   var xrect = new XRect(240, 395, 300, 20);
   var rect = gfx.Transformer.WorldToDefaultPage(xrect);
   var pdfrect = new PdfRectangle(rect);

   //file link
   page.AddFileLink(pdfrect, myUri.LocalPath);
   //web link
   //page.AddWebLink(pdfrect, myUri.AbsoluteUri);


   gfx.DrawString("MyFileName", fontNormal, XBrushes.Black, xrect, XStringFormats.TopLeft);
}
pdfNewDoc.Save(myDestinationUri.LocalPath + "MyNewPdfFile.pdf");
...
2 голосов
/ 25 августа 2009

Я не знаком с классом PdfLinkAnnotation. Вы можете использовать page.AddDocumentLink, page.AddWebLink и page.AddFileLink для создания ссылок. Если вы используете эти методы, вы можете нарисовать значок в виде изображения.

...