Pull to refresh

Comments 32

Не проще поставить PDF-принтер бесплатный?
Если речь не идёт о массовых преобразованиях, то удобнее пользоваться виртуальными принтерами.
Из любого, самого экзотического формата, из программы, где есть печать на принтер, можно сделать отличный PDF.
P.S. OpenOffice, возможно, будет «кривить» документы, созданные в других программах, т.к. имеет другой набор шрифтов. Документы, созданные через виртуальный принтер будут практически на 100% совпадать с тем, что выводится на бумагу с вашего компьютера.
P.S. OpenOffice, возможно, будет «кривить» документы, созданные в других программах, т.к. имеет другой набор шрифтов.

Не совсем так. Набор шрифтов — свойства системы (в случае Linux ещё и пользовательских настроек). И искажения разметки и отображения MS документов в OO не на 100% связаны со шрифтами.
Документы, созданные через виртуальный принтер будут практически на 100% совпадать с тем, что выводится на бумагу с вашего компьютера.
Опять же — если вы будете печатать документ на виртуальный принтер не из того приложения, в котором документ создан (в основном касается офисных пакетов) — гарантировать 100% соответствие оригиналу невозможно.
Причём ещё можно порекомендовать скрипт unoconv, который также умеет запускать OpenOffice/LibreOffice как tcp-сервер. В итоге для конвертации массы файлов не требуется каждый раз запускать офисный пакет.
>Из любого, самого экзотического формата, из программы, где есть печать на принтер, можно сделать отличный PDF.

Есть только одна проблема — а какая программа будет печатать excel файлы, лежащие в какой-то директории? Варианта два — OpenOffice и MsWord, оба умеют делать PDF без виртуальных принтеров, но запускать-то их должен робот, автор примерно это и реализовал.
Соглашусь со всеми комментариями написанные выше.И хочу посоветовать небольшую программку под это дело.
Взято отсюда: askubuntu.com/questions/27097/how-to-print-a-regular-file-to-pdf-from-command-line

THE SIMPLE ENSCRIPT WAY

sudo apt-get install cups-pdf enscript

Then run enscript on your file with the -P switch and the printer description PDF in this case.

enscript -B -PPDF test.txt

A printer with description PDF was created when you installed cups-pdf, when you use enscript with that printer your document will be sent to the PDF printer and will be printed to file, created as .pdf in your /home/PDF directory, the command above will print the text file test.txt as a pdf in the PDF directory.

USING UNOCONV

sudo apt-get install unoconv

You can use unoconv in standalone mode, this means that in absence of an OpenOffice listener, it will start its own:

In the directory where your file is located run:

unoconv -f pdf test.txt

this will create a nice looking pdf of test.txt. in the current directory
OpenOffice насмерть зависает на некоторых файлах, имейте ввиду. В интернете есть конвертор, написанный на Джаве, который умеет запускать сразу пачку этих офисов, печатая через них в PDF, «пристреливая» зависшие. Кроме того, он не просто запускает ОО, а общается с ним по АПИ специальному.

Возьмите лучше этот конвертор.
Как раз ищу такой. Не подкинете ссылочку/название?
Так. А где написано, что JODConverter контролирует процессы и убивает зависшие?
И еще у него есть проблема — он более не поддерживается.
Не знаю где написано, наверное в документации, но по факту он это делает. Что такое «не поддерживается»? Вам его функционала нехватает для чего-то?
Ну как вам сказать… Хочется, чтобы если в нем найдется баг был шанс, что его исправят.
Можно подумать, если есть поддержка, то баг обязательно исправят. Это некомерческий проект. В некоторых из них годами баги не исправляют. Зато это проект с открытым исходным кодом, можно самому его исправить или заплатить кому-нибудь, чтобы исправили.
Согласен. Как я вижу, у него теперь (уже месяц как) лицензия апаче, что особенно хорошо.
Тем не менее когда мне говорят, что проект не поддерживается, это меня несколько напрягает.
Ну и очень зря.
Тем не менее, по всей видимости альтернативы сейчас только две — JODConverter и велосипед на unoconv. Выбор очевидно в пользу JOD. Надеялся, что у вас на примете есть другое решение какое-нибудь, чтобы сравнить.
Нет, JOD хорошее решение. Уже несколько лет его используем.
Поверю вашим рекомендациям ).
Я когда решал подобную задачу выяснил что:
— OO кушает много ресурсов, даже когда запущен без GUI
— он действительно может подвиснуть
— у OO есть интерфейс UNО который в теории очень хорош, ОО на одном сервере твой клиент на другом и с помощью UNO можно проводить любые манипуляции с документом. Но для php есть одно расширение, заставить все это вместе работать это просто подвиг :), документация по всему этому очень не простая мягко говоря.

Все это привело меня к тому что данное решение если и имеет право на жизнь то ни как для массовой обработки постоянных запросов.

Но я согласен с автором что наиболее верный способ (с наименьшим кол-вом притензий к полученному документу это виртуальный принтер). Поставить таковой под линукс нечего делать. Вот только найти нормальный софт который может открыть и отправить на печать желаемый файл без ГУЯ, да и с ним тоже, это проблема :(
Мы заставили за полдня. Никакой не подвиг, правда расширение для ПХП не брали, сделали его веб-сервисом.
Как постоянный пользователь OO, могу сказать, что хотя он и передает внешний вид документов близко к оригиналу, но не более. А в отдельных случаях от оригинала он оказывается существенно далеко (хотя документ и читается).

По поводу использования виртуального принтера — тут есть определенная проблема. Принтер — это, обычно, не просто конвертер. Это именно принтер, у которого есть такая штука, как размер бумаги и ориентация страницы. Кто пытался просто печатать в немалом количестве те «простыни», которые иногда порождает бухгалтерия, знает, сколько возни с подбором масштаба и прочим это иногда требует. Автоматическое масштабирование в случае векторного PDF (который можно увеличивать сколько угодно) — законно, но выглядеть результат может, мягко говоря, не очень, например — широченная таблица из трех десятков столбцов и всего пяти-семи строк, ужатая в ширину вертикально расположенного листа, на котором внизу остается еще дофига пустого места.
Сохранять табличные данные в табличном формате — не дурацкая идея.
В этом виде с ними можно работать: скопировать, выделить, отредактировать.

Я могу в полученном счёте поправить циферки, прикинуть сумму. Накладную я могу загрузить в электронном виде. Договор заполнить/подредактировать. Мне кажется, именно для этого существует электронный формат выгрузки. От pdf'а чаще никакой пользы.
Политика безопасности чаще склоняется к тому, что все документы должны редактироваться в единой контролируемой среде — 1С, где есть логирование действий. А во всех экспортированных документах не должно быть возможности что-либо поменять.
Во-первых, в случае проблем не найдем крайнего, который это все поменял, что дает бухгалтерам возможность по-тихому воровать. Во-вторых, получим расхождение с 1С, а в конце года получим либо адов ад из-за несовпадения данных (это если сами заметим), либо вопросы от налоговой.
Зачем вообще что-либо в таком случае экспортировать?!
PDF максимум что сможет — это защитить от человеческой ошибки, а если кто-либо задастся целью, он что в pdf, что в jpeg циферки поменяет, реквизиты не те продиктует и т.д. Это должно контролироваться другими методами, а ограничение формата экспорта ничего не решает.
Экспортируют, чтобы отправить электронную версию контрагентам. PDFник, чтобы не давать такую очевидную возможность что-то исправить. Конечно же способ всегда найдется, но хватит ли у рядового бухгалтера или менеджера квалификации, чтобы найти нужный редактор, скачать его портабельную версию и обойти запрет на запуск экзешников с флэшки, а также «белый список» прог (настраивается в родительском контроле винды)?
Отвечу на вопрос, почему же бухгалтера не используют формат PDF. Потому что они про него никогда не слышали. Я выписываю счета через онлайн-сервис, они все идут в PDF, так вот по 9 счетам из 10 выписанных мне перезванивают и говорят, что не могут их ничем открыть.

Даже Яндекс, когда присылает бухгалтерские документы, в конце письма пишет пояснение, чем их следует открывать и прикладывает ссылочку на сайт adobe.
Вопрос к знатокам — а есть ли решения для сайта на PHP для преобразования загруженных на него документов MS Word/Excel в PDF?
Sign up to leave a comment.

Articles