Hyperlink 为什么在使用超链接对象时生成错误的链接?
我在尝试使用Migradoc在PDF上呈现Web链接时遇到了一个奇怪的问题Hyperlink 为什么在使用超链接对象时生成错误的链接?,hyperlink,pdfsharp,migradoc,Hyperlink,Pdfsharp,Migradoc,我在尝试使用Migradoc在PDF上呈现Web链接时遇到了一个奇怪的问题 Paragraph hotelP = cell.AddParagraph(offer.Hotel.CompanyName.ToString()); hotelP.AddLineBreak(); Hyperlink hyperlink = hotelP.AddHyperlink(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link, Hyperlink
Paragraph hotelP = cell.AddParagraph(offer.Hotel.CompanyName.ToString());
hotelP.AddLineBreak();
Hyperlink hyperlink = hotelP.AddHyperlink(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link, HyperlinkType.Web);
hyperlink.AddFormattedText(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link.ToString(), "WebLink");
虽然这会正确渲染,但它尝试命中的链接是中的文件链接file:///...bin/Debug(或发布)/www.theActualLink.org项目文件夹
知道为什么会这样吗?根据PDFSharp论坛的说法,代码片段应该是正确的方法
编辑:
好的,多亏了Thomas,我将代码更改为:
if (!String.IsNullOrEmpty(offer.Hotel.Link))
{
Hyperlink hyperlink = hotelP.AddHyperlink("http://" + offer.Hotel.Link, HyperlinkType.Web);
hyperlink.AddFormattedText(offer.Hotel.Link, "WebLink");
}
这不是最后的代码,但由于链接上有“http://”前缀,它现在可以工作了。
干杯 offer.Hotel.Link是否包含“http://”或“https://”?这可能会有所不同
当URL为空时调用
AddHyperlink()
有什么意义?不,通常只需www.link.com。这就是问题所在。它需要http://前缀才能真正工作。我现在可以尝试找到一种方法来检查哑用户输入,并相应地添加或省略前缀。谢谢你的提示。我已经用最后的代码更新了我的问题。