如何使用MigraDoc和C#向页眉图像添加超链接



我有一个项目,需要在作为页眉一部分的图像中嵌入超链接。页眉正在自动复制到其他PDF页面。

需要明确的是,我想生成PDF,然后点击图像,浏览器选项卡就会打开并显示一个网站。我不想从网站上提取图像并将其嵌入到我的PDF中。

图像是文档中的第一个对象。

我的PDF在其他方面都很好。

以下是我的一些代码,它可以获得图像并显示它:

bmp.Save(combinesfinalpath);   // Save the Image

// Retrieve the Image and add to the Header    
MigraDoc.DocumentObjectModel.Shapes.Image image = sec.Headers.Primary.AddImage(@"C:Users" + userName + @"" + "AppData" + @"" + "Roaming" + @"" + "PN" + @"" + "PH2.png");

//Adjust the Image to fit page
image.Height = "3.0cm";
image.Width = "16.0cm";
image.LockAspectRatio = true;



// Start Adding Header Text       
sec.Headers.Primary.AddParagraph();  // insert blank paragraph
Paragraph paragraph = sec.Headers.Primary.AddParagraph();

paragraph.Format.Font.Color = Colors.Red;
paragraph.Format.Font.Size = "9";
paragraph.Format.Alignment = ParagraphAlignment.Right;
paragraph.AddFormattedText("Website  |  Facebook  |  Instagram        ", TextFormat.Bold);

....code continues

纯文本的超文本示例相当容易,但对于页眉图像,则更难找到。

我确实发现了这一点,但这个例子没有将图像作为标题的一部分:

Hyperlink hyperlink = paragraph.AddHyperlink(str, hyperlinkType.Web)
hyperlink.AddImage(...);

另一个问题是,由于图像是第一个对象,它不是段落的一部分,因此段落引用出错(未定义(。

这个例子也来自2008年的一个论坛帖子,所以不确定这是否是最好的解决方案。

任何帮助都将不胜感激!

现在已经修复了!增加了第二段。

最新更新