Форум: "Прочее";
Текущий архив: 2012.01.01;
Скачать: [xml.tar.bz2];
ВнизКак програмно сшить несколько pdf-файлов в один? Найти похожие ветки
← →
>|< (2011-09-13 10:42) [0]У кого есть опыт, поделитесь.
Все pdf-файлы генерятся программно путем экспорта из QReporta.
Получается около 500 файлов, их нужно склеить в один pdf.
Кто знает, как это можно сделать.
← →
Dimka Maslov © (2011-09-13 10:52) [1]Adobe Acrobat (стоит денег)
Adobe Reader + PDFCreator (оба бесплатны)
← →
Компромисс (2011-09-13 10:58) [2]Я это на Java делал с помощью библиотеки iText. Вроде как есть аналог на .Net iTextSharp, который можно использовать из Delphi. Только будет похоже на вырывание гланд через задний проход.
← →
>|< (2011-09-13 11:03) [3]
> Adobe Acrobat (стоит денег)
> Adobe Reader + PDFCreator (оба бесплатны)
при чем тут это?
у меня компоненты сами генерят pdf, а будет ли у пользователя купленный акробат - это ни на что не влияет
← →
RWolf © (2011-09-13 11:05) [4]не такой уж и сложный формат у файла PDF.
вполне можно склеить самостоятельно, без сторонних библиотек.
← →
Медвежонок Пятачок © (2011-09-13 11:06) [5]Все pdf-файлы генерятся программно путем экспорта из QReporta.
Получается около 500 файлов, их нужно склеить в один pdf.
Кто знает, как это можно сделать.
сделать еще один qreport внутри которого все 500 репортов.
выгрузить в пдф.
← →
И. Павел © (2011-09-13 11:08) [6]Как вариант - использовать какую-нибудь стороннюю программу, предоставляющую API. Например:
http://www.coolutils.com/ru/PDFCombine - есть командная строка
← →
>|< (2011-09-13 11:11) [7]Нашел пример на вижуал бейсике:
" Данная процедура создает один .pdf файл из нескольких исходных .pdf файлов
Sub pdf_plus_pdf(ByVal pathItog As String, ByRef arr_files() As String)
"pathItog - полное имя результирующего файла
"arr_files() массив, содержащий полные имена файлов, которые нужно склеивать
Dim numPages As Integer
Dim AcroApp As Acrobat.CAcroApp "
Dim i As Integer
Dim NewDocument As Acrobat.CAcroPDDoc
Dim OldDocument As Acrobat.CAcroPDDoc
Set AcroApp = CreateObject("AcroExch.App")
Set NewDocument = CreateObject("AcroExch.PDDoc")
Set OldDocument = CreateObject("AcroExch.PDDoc")
NewDocument.Open (arr_files(1))
For i = 2 To UBound(arr_files())
Debug.Print arr_files(i)
OldDocument.Open (arr_files(i))
numPages = NewDocument.GetNumPages()
If NewDocument.InsertPages(numPages - 1, OldDocument, 0, OldDocument.GetNumPages(), True) = False Then
MsgBox "Невозможно вставить страницы"
End If
OldDocument.Close
Next i
If NewDocument.Save(PDSaveFull, pathItog) = False Then
MsgBox "Невозможно сохранить измененный документ"
End If
NewDocument.Close
AcroApp.Exit
Set AcroApp = Nothing
End Sub
Помогите перевести на Delphi.
← →
Inovet © (2011-09-13 11:22) [8]А что в QReport нельзя одним отчётом сделать?
← →
Anatoly Podgoretsky © (2011-09-13 11:29) [9]> >|< (13.09.2011 11:03:03) [3]
Тогда надо иметь правильные компоненты
← →
Anatoly Podgoretsky © (2011-09-13 11:31) [10]> >|< (13.09.2011 11:11:07) [7]
Это требует Акробата, по твоим условиям это нельзя.
← →
>|< (2011-09-13 11:32) [11]
> сделать еще один qreport внутри которого все 500 репортов.
>
> выгрузить в пдф.
а как сделать отчет в отчете? и количество может быть разным...
← →
>|< (2011-09-13 11:35) [12]
> Это требует Акробата, по твоим условиям это нельзя.
почему нельзя? у меня весь софт лицензионный
← →
>|< (2011-09-13 11:36) [13]
> Тогда надо иметь правильные компоненты
может название подскажите?
← →
Inovet © (2011-09-13 11:38) [14]> [11] >|< (13.09.11 11:32)
> а как сделать отчет в отчете? и количество может быть разным...
Что-то мне подсказывает, что отчёты у тебя по одному шаблону делаются. Так тогда вообще странная проблема - группировка даже в самых примитивных генераторах есть, иначе и генератором не назвать.
← →
>|< (2011-09-13 11:47) [15]
>
> Что-то мне подсказывает, что отчёты у тебя по одному шаблону
> делаются. Так тогда вообще странная проблема - группировка
> даже в самых примитивных генераторах есть, иначе и генератором
> не назвать.
каждый отчет формируется из двух источников - список оборудования на объекте и сверочная опись с другой системой.
То есть использую CompositeReport.ExportToFilter(pdfFilter);
так что каждый отчет получается из двух шаблонов.
← →
Inovet © (2011-09-13 12:06) [16]> [15] >|< (13.09.11 11:47)
> из двух источников - список оборудования на объекте и сверочная
> опись с другой системой
Криво как-то. В одну систему из другой экспортировать на момент генерации отчёта, и делать с этим уже что хочешь.
← →
>|< (2011-09-13 12:29) [17]вообщем, пробовал неоднократно вызывать
CompositeReport.ExportToFilter(pdfFilter);
и он таки дописывает в уже существующий файл
но файл невозможно открыть
октрыл блокнотом, там визуально все в порядке, похоже на формат пдф
но похоже где-то вставляется лишний тег конца файла или что-то в структуре
осталось выяснить формат пдфа и поправить необходимые места в коде.
← →
Anatoly Podgoretsky © (2011-09-13 12:30) [18]
> почему нельзя? у меня весь софт лицензионный
Ты вообще при чем?
> у меня компоненты сами генерят pdf, а будет ли у пользователя
> купленный акробат - это ни на что не влияет
← →
>|< (2011-09-13 14:11) [19]
> Ты вообще при чем?
мопед не мой, я просто разместил объяву...
← →
Inovet © (2011-09-13 14:21) [20]> [19] >|< (13.09.11 14:11)
> мопед не мой
И я не я, и мопед не мой.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2012.01.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c