Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PDF в JPG по определенным координатам, ?? Multivalent ?? 
V
    Опции темы
azz
  Дата 8.1.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

Репутация: нет
Всего: нет



Получил новое задание. Надо из PDF документа получить участок и сохранить в JPG. Чтонить такова вида:

 createJPG(PDFfile, stranitsa, X,Y,Schirena, Visota).

На данный момент я только знаю что это возможно с помощю библиотеки Multivalent. Может кто поделится идеями или опытом? 
Зарание данке шон.
PM MAIL   Вверх
azz
Дата 8.1.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

Репутация: нет
Всего: нет



Можно и без координат. Просто подскажите как страницу из в BufferedImage проше всего перекинуть.
PM MAIL   Вверх
azz
Дата 10.1.2008, 11:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

Репутация: нет
Всего: нет



Ладно, отвечю сам себе:
Код


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;
    }

}


PM MAIL   Вверх
KostenkoSergey
Дата 5.2.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



блина!!!! пасиба!!! Очень помогло smile

Добавлено через 3 минуты и 18 секунд
А реально найти в пдф файле все картинки(скока их будет заранее не известно) и сохранить их как JPEG файлы ? 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.