@dgkotkovsky

В чем проблема Java- трансформации, преобразующей blob в pdf?

Имеется кусок Java-кода, который должен считывает из таблицы BLOB- поле, представляющее собой закодированный PDF-файл. Требуется произвести раскодировку blob и создать pdf-файл в директории.
Приведенный код создает файл, но при этом его нельзя открыть как PDF.
Делал по аналогии с примерами с форумов.
В чем может быть проблема?
Заранее спасибо.
BLOB - это название поля, передаваемого из предыдущей трансформации.
P.S.Разработка ведется в ETL платформе Informatica PowerCenter, поэтому код выглядит несколько странно.
8c6bc36e99714d72b09e8616042a83ea.png
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 2
@aol-nnov
надо начать с проверки, что в блоб оказывается действительно валидный пдф :)
Ответ написан
@exenza
У меня, вот так, работает:
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost:9092/~/Downloads/h2/mydb", "sa", "");
PreparedStatement ps = conn.prepareStatement("select PDF from FILES");
ResultSet rs = ps.executeQuery();

Blob blob = null;
if (rs.next()) blob = rs.getBlob("PDF");

if (blob != null) {
    File myPdf = new File("mypdf.pdf");
    ByteArrayInputStream is = new ByteArrayInputStream(blob.getBytes(0, (int) blob.length()));
    FileOutputStream fos = new FileOutputStream(myPdf);
    byte[] buf = new byte[is.available()];
    is.read(buf, 0, buf.length);
    fos.write(buf);
    is.close();
    fos.close();
}


как вариант отдебажьте свой код из какой-нить человеческой IDE, а потом запустите из Informatica (я не знаком с ней, по виду что-то древнее)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы