Pdf в Jpg

Тема в разделе "Lotus - Программирование", создана пользователем NickProstoNick, 5 дек 2008.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Доброго времени суток!
    Есть задача перегонять PDF в JPG. причем каждая страница в отдном файле.

    Вот нашел такой код
    Код (Text):
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;

    import javax.imageio.ImageIO;

    import multivalent.Behavior;
    import multivalent.Browser;
    import multivalent.Context;
    import multivalent.Document;
    import multivalent.Multivalent;
    import multivalent.Node;
    import multivalent.ParseException;
    import multivalent.node.Root;
    import multivalent.std.adaptor.pdf.PDF;
    import phelps.io.Files;
    import phelps.util.Units;

    public class Pdf2Image {


    public static BufferedImage getPageBild(String pdfFilePath, int pageNr )throws IOException, ParseException
    {
    Browser br = Multivalent.getInstance().getBrowser("fake");
    PDF pdf = (PDF) Behavior.getInstance("AdobePDF", "AdobePDF", null,
    null, null);
    File file = Files.getFile(pdfFilePath);
    pdf.setFile(file);
    Root root = br.getRoot();
    Document doc = new Document("doc", null, root);
    pdf.docURI = file.toURI();

    pdf.parse(doc); // empty parse to determine page count
    int pagecnt = Integer.parseInt(doc.getAttr(Document.ATTR_PAGECOUNT));
    doc.clear();

    doc.putAttr(Document.ATTR_PAGE, Integer.toString(pageNr));
    pdf.parse(doc);
    Node top = doc.childAt(0);

    doc.formatBeforeAfter(0, 0, null);
    int w = top.bbox.width;
    int h = top.bbox.height;
    BufferedImage img = new BufferedImage(w, h,
    BufferedImage.TYPE_INT_RGB);
    Graphics2D g = img.createGraphics();
    g.setClip(0, 0, w, h);

    // paint page
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_RENDERING,
    RenderingHints.VALUE_RENDER_QUALITY);
    Context cx = doc.getStyleSheet().getContext(g,
    Toolkit.getDefaultToolkit(), null);
    top.paintBeforeAfter(g.getClipBounds(), cx);


    // clean up
    doc.removeAllChildren();
    cx.reset();
    g.dispose();
    pdf.getReader().close();
    return img;
    }

    public static BufferedImage CropImage(BufferedImage img, int xll, int yll, int xur, int yur)
    {

    img = img.getSubimage(xll, yur, xur-xll, yll-yur);
    return img;
    }

    }

    но в 30-й строке ошибка... а в Java я не силен... вообще никак
    нужную библиотеку выгрузить не получилось... она 2,5 метра... но она есть в нете...
    Подскажите, в чем ошибка?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    multivalent давно не обновлялся
    jpedal Вам в руки...
    навскидку - вот две ссылки, но крайне рекомендую поближе ознакомиться с java ;)
    за Вас это никто не сделает...
    http://threebit.net/mail-archive/itext-que...s/msg01415.html
    http://forums.sun.com/thread.jspa?threadID...95&start=30

    гугл рулед :ph34r:

    совсем забыл, в домине подключение сторонних библ протекает по особым правилам:
    -способом включения в библиотеку базы - в дизайнере Edit Project (если прально помню)
    -способом покладевания в путя доминошной ЖВМ... знакомимся с сылками:
    http://web3.inttrust.ru/site/itforum.nsf/6...33;OpenDocument
    http://www-1.ibm.com/support/docview.wss?uid=swg21159321
    -способом вызова внешней java - здесь мимум особенностей и ограничений (особенно на версию ЖВМ)

    вот еще проект https://pdf-renderer.dev.java.net/examples.html
    сорцы можете забрать через CVS (там ссылки есть)

    открытые проекты касабельные ПДФ - http://java-source.net/open-source/pdf-libraries
    для ваших целей подходит тока то - что может "рендерить"
    http://sourceforge.net/project/showfiles.php?group_id=203731

    и для преобразований инмемори имэджей в файл понадобиться типа того:
    http://www.nsftools.com/tips/JpgImage.java
     
Загрузка...

Поделиться этой страницей