使用构建输出图像
Output image with build
我正在使用 MigraDoc,并且想在文档中插入图像。最简单的方法是为图像文件提供路径(而不是将其放在资源中)。所以我想做的是,将图像作为文件包含在构建中的其他文件中。然后 MigraDoc 可以使用基于相对路径的图像。
但我不知道该怎么做,甚至不知道是否可行。那么我可以让我的项目包含一个图像文件,在资源之外。
P.S. 我知道有一个解决方法,您可以在资源中包含图像,在 MigraDoc 必须使用之前将其保存在临时文件夹中它。如果图像始终可用,这似乎是一个更简单的设计。
P.P.S. 有一个变通方法,使 MigraDoc 使用来自项目资源的图像(参见已接受的答案)。
如 MigraDoc 网站所示,您可以使用您拥有的图像作为 byte[]
创建 PDF 文件。这可以很容易地与资源中的图像一起使用(如网站所示)。
您只需将图像资源转换为特殊字符串并将该字符串传递给 MigraDoc 需要文件名的位置。
static string MigraDocFilenameFromByteArray(byte[] image)
{
return "base64:" +
Convert.ToBase64String(image);
}
Link 到官方 MigraDoc 站点:
http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx
并且 MigraDoc 还可以将存储在程序文件夹中的图像与您的程序集一起使用。您可以使用 Assembly
class 找出程序集的存储位置,并在该文件夹中搜索应该存在的图像。这与 MigraDoc 无关,只是一些基本的 .NET 功能。
我正在使用 MigraDoc,并且想在文档中插入图像。最简单的方法是为图像文件提供路径(而不是将其放在资源中)。所以我想做的是,将图像作为文件包含在构建中的其他文件中。然后 MigraDoc 可以使用基于相对路径的图像。
但我不知道该怎么做,甚至不知道是否可行。那么我可以让我的项目包含一个图像文件,在资源之外。
P.S. 我知道有一个解决方法,您可以在资源中包含图像,在 MigraDoc 必须使用之前将其保存在临时文件夹中它。如果图像始终可用,这似乎是一个更简单的设计。
P.P.S. 有一个变通方法,使 MigraDoc 使用来自项目资源的图像(参见已接受的答案)。
如 MigraDoc 网站所示,您可以使用您拥有的图像作为 byte[]
创建 PDF 文件。这可以很容易地与资源中的图像一起使用(如网站所示)。
您只需将图像资源转换为特殊字符串并将该字符串传递给 MigraDoc 需要文件名的位置。
static string MigraDocFilenameFromByteArray(byte[] image)
{
return "base64:" +
Convert.ToBase64String(image);
}
Link 到官方 MigraDoc 站点:
http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx
并且 MigraDoc 还可以将存储在程序文件夹中的图像与您的程序集一起使用。您可以使用 Assembly
class 找出程序集的存储位置,并在该文件夹中搜索应该存在的图像。这与 MigraDoc 无关,只是一些基本的 .NET 功能。