我正在使用PDFSharp将 TIFF 文件插入 PDF 。该过程运行良好,但它在 TIFF 文件上留下了锁。TIFF 文件位于 SMB 共享上。我使用的是 WPF 版本,因为 GDI 版本不支持 CMYK TIFF。
var output = new PdfDocument();
var input = PdfReader.Open(template_path, PdfDocumentOpenMode.Import);
var page = input.Pages[0];
output.AddPage(page);
page = output.Pages[0];
var gfx = XGraphics.FromPdfPage(page);
var image = XImage.FromFile(tiff_path);
gfx.DrawImage(image, 500, 200, 400, 400);
output.Save(destination_path);
output.Close();
更新:只需这样做,TIFF 就会被锁定。没有打开文档或 XGraphics 或任何东西。
using (var image = XImage.FromFile(path))
{}
更新:这行得通,这就是我现在要做的。
using (var fsImage = File.Open(tiffPath, FileMode.Open, FileAccess.Read, FileShare.None))
{
var bitmapSource = new BitmapImage();
bitmapSource.BeginInit();
bitmapSource.StreamSource = fsImage;
bitmapSource.EndInit();
using (var image = XImage.FromBitmapSource(bitmapSource))
{
}
}
不雅地,这段讨厌的代码也有效:-)
using (var image = XImage.FromFile(tiffPath))
{
}
GC.Collect();