Конвертировать документ 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);
}
Другие вопросы по тегам