Я создаю веб-интерфейс для клиентов, чтобы загружать их отчеты. Программа, которую использует компания, написана на Java и состоит из 31 таблицы mysql с четырьмя отчетами, для которых требуется более 140 точек данных. Я создаю веб-сайт в PHP и генератор отчетов на Java, но у меня возникла проблема с поиском информации о том, как загрузить PDF-файл в память непосредственно в браузере клиентов. Я решил использовать TCP-клиент/сервер, идущий от Java к PHP, но как его закодировать, чтобы его не нужно было записывать на серверный диск и поставляться в виде ссылки. У меня также нет желания переписать 17 000 строк Java на PHP, поскольку я новичок в PHP. В любом случае, чтобы это сделать? Спасибо заранее.Использование PHP для поставки в память pdf из генератора Java
ответ
В зависимости от того, как долго приложение Java бы работать, вы могли бы рассмотреть возможность использования proc_open
создать канал к программе Java:
<?php
$desc = array(array('pipe','r'),array('pipe','w'));
$resource= proc_open('bash',$desc,$pipes);
if (!is_resource($resource))
{
throw new Exception('PDF stream creation failed');
}
usleep(5);//for safety
fwrite($pipes[0],'java mkPDF paras'."\n");//double quoted \n is crucial
fclose($pipes[0]);
usleep(100);//while java app is running;
$pdf = stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($resource);
?>
Это лишь простой пример, что получает потоковый pdf-файл в одном большом компе, так что он далек от совершенства. То, что вы должны -IMO- изучить, - это получить поток в кусках, используя цикл while. php man page содержит несколько примеров этого, в основном, repleace
usleep(100);//while java app is running;
$pdf = stream_get_contents($pipes[1]);
с:
usleep(10);//while java app is running;
$pdf = '';
while (($pdfBuff = fgets($pipes[1],1024)) !== null)
{
$pdf.=$pdfBuff;//or echo, or whatever
}
fclose($pipes[1]);
последнего не тестировался, так что я не уверен, что будет работать в вашем случае ... но вы получаете идею
Отлично, это меня в правильном направлении. Благодарю. – Brett
Приветствия, рады помочь –
По словам @Elias напрямую отправить веб-запрос к приложению Java, и поток в формате PDF на PHP.
Использование веб-сервисов,
I. Разработка некоторых веб-сервисов на стороне Java, который будет посылать данные только в любом из формата, как XML, JSON и т.д.
II. Напишите код для использования этих веб-сервисов и разработайте свой код для создания pdf-файла и потока этих PDF-файлов.
Существует один pdf-генератор. Вы можете найти ссылку here
Итак, вы говорите, а не создаете pdf на Java с уже написанным кодом, я должен сгенерировать его в php, потому что php не имеет возможности передавать данные через себя. Это несчастливо. – Brett
У меня создалось впечатление, что в java-стороне нет такой функции. И да, делая это с помощью веб-сервисов, вы сможете создавать свой PDF-файл. –
- 1. Использование генератора случайных чисел Java
- 2. Использование Java для преобразования PDF в XML
- 3. Python3 PDF библиотека генератора
- 4. Память Использование внешних инструментов в java
- 5. Множественное использование генератора из списка в Python
- 6. PHP электронная Headers - вариант поставки
- 7. Добавление шрифта и импорт с помощью PDF-генератора в PHP
- 8. C#: Использование генератора для создания указательного массива
- 9. Опции поставки для HSpec из Cabal
- 10. Использование ANTLR и Java для создания генератора кода привязки данных
- 11. Частичная загрузка PDF в память
- 12. Использование php для принудительного скачивания pdf
- 13. Использование AJAX и PHP для вывода PDF
- 14. Использование функции генератора питон
- 15. Использование генератора FriendlyId в модели
- 16. PHP - библиотека PDF-генератора с установленной функцией истечения срока
- 17. Инструменты для константы генератора строки в java?
- 18. Изменение генератора токенов SQL для генератора токенов Java
- 19. Использование цикла для создания генератора случайных предложений
- 20. Использование XFDF для pdf
- 21. Использование нескольких выражений генератора
- 22. Использование JavaScript для создания генератора случайных имен
- 23. Задача генератора Java Builder
- 24. Использование Powershell для удаления содержимого из PDF
- 25. Использование генератора для создания предложений из заданных слов
- 26. Использование Pdfcrowd для преобразования HTML в PDF в PHP
- 27. Java 8 hashmap высокая память Использование
- 28. Java-память из пространства кучи
- 29. Служба генератора последовательности Java
- 30. Джанго модель: использование генератора для создания данных
Не можете ли вы просто сделать так, чтобы веб-запрос запускал приложение java и транслировал pdf-файл в php, который, в свою очередь, отправляет его клиенту? –
Имея запрос php, приложение java и получить результирующий поток не будет проблемой. Моя ключевая проблема заключается в том, что вы не знаете/не понимаете код, который перемещает поток из php-порта в клиент. К сожалению, я очень новичок в php. – Brett