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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> открыть pdf в браузере 
V
    Опции темы
alder
Дата 12.5.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



создаю с помощью fop pdf, результат сохраняю на диске, а как можно сделать следующее: после того как сформировал pdf открыть его (не сохраняя его на диск) в браузере? 
PM MAIL   Вверх
w1nd
Дата 12.5.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Легко - только вам понадобится web-сервер. 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
onsh76
Дата 14.5.2006, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Впихни байтстрим pdf файла в ServletOutput :

Код

...
ByteArrayOutputStream pdfStream = null;
            try{
                // get pdf file as byte stream
                pdfStream = getOutputSream();
                response.setContentType("application/pdf");
                response.setCharacterEncoding("UTF-8");
                response.setContentLength(pdfStream.size());
                ServletOutputStream out = response.getOutputStream();
                pdfStream.writeTo(out);
                out.flush(); 
            }catch(Exception e){
                logger.error("Failed to stream pdf report on client. Caused by: ", e);
            }finally{
                try{
                   if (pdfStream != null){
                       pdfStream.close();    
                   }
                }catch(IOException ioe){
                    logger.error("Failed to close pdf reporting stream. Caused by: ", ioe);
                }
            }
...

Выдрал вот из того, что применял в проекте. Метод getOutputSream() возвращает тебе пдф файл ввиде байтстрима... Если чего-то не ясно - спрашивай... 
PM MAIL   Вверх
alder
Дата 15.5.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



имеется веб приложение (Spring + Tomcat)
почитал предыдущий пост и сделал следующее 

Код

public class XLogReport extends AbstractController {


    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {

        ModelAndView mav = new ModelAndView();
        final XProjectData prjData = new XProjectData();
        final Vector logCollection = new Vector();
        final String directory;

        directory = request.getParameter("dir");
        prjData.setDateFrom(request.getParameter("datefrom"));
        prjData.setDateTo(request.getParameter("dateto"));
        prjData.setProjectName(request.getParameter("projectName"));

        LogReportEntry[] entryList = ServiceAccess.getLogReportEntry(prjData.getProjectName(), directory, prjData.getDateTo(), prjData.getDateFrom());

        Document doc = DomXml.createXmlDocument(entryList);

        ByteArrayOutputStream pdfStream = null;
            try{
                // get pdf file as byte stream
                File xslt = new File("log2fo.xsl");
                pdfStream = XML2PDF(doc, xslt);
                response.setContentType("application/pdf");
                response.setCharacterEncoding("UTF-8");
                response.setContentLength(pdfStream.size());
                ServletOutputStream out = response.getOutputStream();
                pdfStream.writeTo(out);
                out.flush();
            }catch(Exception e){
                logger.error("Failed to stream pdf report on client. Caused by: ", e);
            }finally{
                try{
                   if (pdfStream != null){
                       pdfStream.close();
                   }
                }catch(IOException ioe){
                    logger.error("Failed to close pdf reporting stream. Caused by: ", ioe);
                }
            }

        return mav;
    }

    public ByteArrayOutputStream XML2PDF(Document xml, File xslt)
                throws IOException, FOPException, TransformerException {
        //Construct driver
        Driver driver = new Driver();

        //Setup logger
        Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
        driver.setLogger(logger);
        MessageHandler.setScreenLogger(logger);

        //Setup Renderer (output format)
        driver.setRenderer(Driver.RENDER_PDF);

        //Setup output
        //OutputStream out = new java.io.FileOutputStream(pdf);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try {
            driver.setOutputStream(out);

            //Setup XSLT
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(new StreamSource(xslt));

            //Setup input for XSLT transformation
            Source src = new StreamSource(new StringReader(xml.asXML()));

            //Resulting SAX events (the generated FO) must be piped through to FOP
            Result res = new SAXResult(driver.getContentHandler());

            //Start XSLT transformation and FOP processing
            transformer.transform(src, res);
        } finally {
            out.close();
        }

        return out;
    }
}


компиляется, запускаю... но страница пустая.... может не правильно путь в к файл xsl указываю 
Код

File xslt = new File("log2fo.xsl");

как правильно указать путь к этому файлу который лежит на Tomcat'e???

или ошибка не в этом? 
PM MAIL   Вверх
tux
Дата 15.5.2006, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



А что в логе Томката говорится? Раз на странице пусто, значит должно быть какое-то исключение.  

Это сообщение отредактировал(а) tux - 15.5.2006, 09:54
PM MAIL Skype GTalk Jabber YIM   Вверх
alder
Дата 15.5.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в логе томката ничего такого подозрительного нету

Код

2006-05-15 15:12:55 StandardContext[/balancer]org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2006-05-15 15:12:55 StandardContext[/jsp-examples]ContextListener: contextInitialized()
2006-05-15 15:12:55 StandardContext[/jsp-examples]SessionListener: contextInitialized()
2006-05-15 15:12:55 StandardContext[/servlets-examples]ContextListener: contextInitialized()
2006-05-15 15:12:55 StandardContext[/servlets-examples]SessionListener: contextInitialized()
2006-05-15 15:12:58 StandardContext[/calc]Loading WebApplicationContext for Spring FrameworkServlet 'springServlet'
2006-05-15 15:12:59 StandardContext[/scm2]Loading WebApplicationContext for Spring FrameworkServlet 'springServlet'
2006-05-15 15:13:37 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@18ff27')
2006-05-15 15:13:37 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1177115')
2006-05-15 15:13:37 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@150a0')
2006-05-15 15:13:37 StandardContext[/jsp-examples]SessionListener: contextDestroyed()
2006-05-15 15:13:37 StandardContext[/jsp-examples]ContextListener: contextDestroyed()
2006-05-15 15:13:38 StandardContext[/calc]Closing WebApplicationContext of Spring FrameworkServlet 'springServlet'
2006-05-15 15:13:38 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1aca5e2')
2006-05-15 15:13:38 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1be9a50')
2006-05-15 15:13:38 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@8518d4')
2006-05-15 15:13:38 StandardContext[/servlets-examples]SessionListener: contextDestroyed()
2006-05-15 15:13:38 StandardContext[/servlets-examples]ContextListener: contextDestroyed()
2006-05-15 15:13:38 StandardContext[/scm2]Closing WebApplicationContext of Spring FrameworkServlet 'springServlet'
 
PM MAIL   Вверх
alder
Дата 15.5.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



все разобрался, спасибо за помощь, ошибка была с путями, не находил файл log2fo.xsl 
PM MAIL   Вверх
alder
Дата 16.5.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



еще вопрос появился по открытию pdf. Я пользуюсь firefox и в нем все замечательно pdf замечательно отображается, и решил проверить как будет работать в експлорере открываю, он мне предлагает нексколько вариантов открыть, сохранить... если выбираю открыть то он мне открывает pdf как html и естественно там всякая кракозябра, если выбираю соххранить то он мне его сохраняет как html.... ак можно победить эту проблему в эксплорере?

Добавлено @ 08:58 
исправил... оказывалось что надо было открывать эту страницу не как html а как pdf и тогда эксплорер все отобразит 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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