1

我有几个包含地图的 PDF 文档。其中哪一个是最好的选择,我该如何实现它:

  1. 启动 PDF 文件以显示地图。我认为这不是最佳做法,但我认为您可能需要安装 Adob​​e Reader(对此不确定)。
  2. 将图像转换为图像并在 ScrollViewer 中显示。但是,我无法将其转换为分辨率足够高的图像。如果我这样做,我应该使用什么分辨率?
  3. 我知道可以将 PDF 转换为 XAML。然后我可以直接在 ScrollViewer 中显示 XAML。但是,此过程缓慢且费力,并且生成的 XAML 将非常庞大。不知道表演会是什么样子。
  4. 第四个选项是将地图转换为 XPS 格式,然后尝试启动文档。我不确定这是否可行以及 XPS 是否得到普遍支持。
4

2 回答 2

4
  1. 是的,客户端需要安装一些 PDF 阅读器并默认设置为在这种情况下打开 .pdf 文件。如果你想这样做,只需使用Process.Start(pdfFilePath)。如果用户没有与 pdf 关联的应用程序,这将引发异常。如果您想显示“打开方式”对话框,请使用 ProcessStartInfo.ErrorDialog

  2. 这可能是最好的选择。您需要将 PDF 渲染成具有良好分辨率的图像。所以你需要一个PDF库。我猜您使用的是 C#,因此您可以使用 PdfSharp 或 ITextSharp,但请注意,如果您在商业应用程序中使用 ITextSharp,则需要付费。我不知道您对分辨率的要求,但您可以尝试获取用户的屏幕分辨率并做出决定。
    您需要 pdf 光栅化,检查http://code.google.com/p/lib-pdfhttp://stefanochizzolini.it/en/projects/clown

  3. 据我所知,在自动模式下这样做是不可能的。PDF 是一种非常复杂的格式,它允许非常疯狂的格式,这很难用其他任何东西来重现。有一些方法可以从 pdf 生成 xaml,但是在转换后它们需要人工来修复 xaml 问题,所以我想这不是你想要渲染地图的方法。

于 2012-09-24T08:25:32.883 回答
1

经过进一步调查。最好的选择是将您的 PDF 转换为 XPS 格式。然后启动这些文件。每个 Windows 8 安装都内置了一个 XPS 查看器。这样做的主要优点是它将支持任何屏幕分辨率并且非常容易实现。

于 2012-09-25T07:57:29.433 回答