Конвертировать документ Kofax Release в двоичный файл
Когда дело доходит до выпуска Kofax, я хочу преобразовать каждый отсканированный документ в байтовый массив. В моем ReleaseDoc
Сначала я хочу проверить, является ли файл файлом PDF или TIFF.
Пользователь может установить значение bool в ReleaseSetup
это приводит к "использованию файла PDF, если вам приходится выбирать между несколькими типами файлов".
Я только что создал фрагмент, который пытается преобразовать файл в байтовый массив.
Как я могу проверить, должен ли я использовать PDF или файл изображения в моем ReleaseDoc
метод?
Неважно, если файл PDF имеет три страницы, потому что это один файл. Но это важно, если есть три файла TIFF, которые нужно преобразовать в один байтовый массив. Как мне этого добиться?
Подводя итог, мне нужен в моем методе только способ извлечь имя и байтовый массив из документа.
public KfxReturnValue ReleaseDoc()
{
try
{
string fileName = string.Empty;
string filePath = string.Empty;
if (usePDFIfPossible) // user preference from the setup
{
fileName = documentData.KofaxPDFFileName;
filePath = documentData.KofaxPDFPath;
}
else
{
filePath = documentData.ImageFilePath;
fileName = Path.GetFileName(filePath);
}
byte[] binaryFile = File.ReadAllBytes(filePath);
// use fileName and binaryFile
return KfxReturnValue.KFX_REL_SUCCESS;
}
catch (Exception e)
{
// Handle exception
return KfxReturnValue.KFX_REL_ERROR;
}
}
0 ответов
Не объединяйте TIFF вручную. Вот что Copy
метод на ImageFiles
Коллекция для. Вот короткий пример - вы получите два байтовых массива, BinaryImage[]
а также PdfImage[]
, Во время выпуска просто проверьте на нулевое значение, прежде чем пытаться записать PDF-файлы (если Генератор PDF не был добавлен в очередь, у вас просто не будет этих файлов).
Обратите внимание, что во время настройки вы можете изменить ImageType
собственность на ReleaseSetupData
объект, а Copy
Затем метод будет использовать указанный формат (0 = многостраничный TIFF, CCITT G4).
// binary image
DocumentData.ImageFiles.Copy(Path.GetTempPath(), -1);
string tmpFile = Path.Combine(Path.GetTempPath(), DocumentData.UniqueDocumentID.ToString("X8")) + Path.GetExtension(ImageFileNames[0]);
if (File.Exists(tmpFile))
{
// assuming BinaryImage is of type byte[]
BinaryImage = File.ReadAllBytes(tmpFile);
File.Delete(tmpFile);
}
// binary PDF
if (File.Exists(DocumentData.KofaxPDFFileName))
{
// assuming BinaryPdf is of type byte[]
BinaryPdf = File.ReadAllBytes(DocumentData.KofaxPDFFileName);
}