Я вставляю файл TIFF в PDF, используя PDFSharp. Этот процесс работает нормально, но он оставляет блокировку в файле TIFF. Файл TIFF находится на SMB-ресурсе. Я использую версию WPF, потому что версия GDI не поддерживает CMYK TIFF.PDFSharp Locking Tiff Files
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();
Я предполагаю, что ваш вопрос: «Как снять этот замок?» Одно из предложений заключалось бы в том, чтобы избавиться от изображения: оно может содержать блокировку файла. Итак, 'image.Dispose()', после того, как вы нарисовали его. –
Я пробовал это, изображение все еще заблокировано. Пробовал выпустить выходной документ. – mxmissile