собствено, интересует сабж, а точнее стоит такая задача: на .NET заниматься печатью pdf документов — печатать несколько документов подряд, устанавливать параметры печати, делать print preview. Как такое сделать?
Здравствуйте, Corvin, Вы писали: C>собствено, интересует сабж, а точнее стоит такая задача: на .NET заниматься печатью pdf документов — печатать несколько документов подряд, устанавливать параметры печати, делать print preview. Как такое сделать?
Reporting Services ?
Здравствуйте, Pavel Kalyakin, Вы писали:
PK>Здравствуйте, Corvin, Вы писали: C>>собствено, интересует сабж, а точнее стоит такая задача: на .NET заниматься печатью pdf документов — печатать несколько документов подряд, устанавливать параметры печати, делать print preview. Как такое сделать? PK>Reporting Services ?
Здравствуйте, Pavel Kalyakin, Вы писали:
PK>Здравствуйте, Corvin, Вы писали:
PK>>>Reporting Services ? C>>простите меня неразумного, это что такое? PK>Reporting Services
посмотрел, — что-то сложно как-то... На сайте ни строчки кода, а абстрактные рассуждения о том, что Reporting Services — это круто. Как я понял, это целый набор программ, для импорта различных данных в какие-то базы данных и вывода их на различные устройства (непонятно как — у меня вообще создалось впечатление, что это не программный API, а какой-то отдельный продукт). Мне хотелось бы знать, как работать с форматом PDF из кода, на отдельно взятом клиентском компьютере — иметь возможность написать что-то вроде
Здравствуйте, Corvin, Вы писали:
PK>>>>Reporting Services ? C>>>простите меня неразумного, это что такое? PK>>Reporting Services
C>посмотрел, — что-то сложно как-то... На сайте ни строчки кода, а абстрактные рассуждения о том, что Reporting Services — это круто. Как я понял, это целый набор программ, для импорта различных данных в какие-то базы данных и вывода их на различные устройства (непонятно как — у меня вообще создалось впечатление, что это не программный API, а какой-то отдельный продукт).
Это пока отдельный продукт — бесплатный add-on к MS SQL Server. В Yukon'е будет уже встроен. Предназначен для создания отчетов. В комплекте идет визуальный редактор отчетов, который встраивается в VS.NET и web-часть, куда публикуются отчеты. Также поставляется ряд web-сервисов, через которые отчеты можно получать в виде .pdf, оффисных форматов и т.д.
Также можно дописывать то, что не хватает. Инструмент очень мощный и, повторюсь, бесплатный.
C>Мне хотелось бы знать, как работать с форматом PDF из кода, на отдельно взятом клиентском компьютере — иметь возможность написать что-то вроде
Имеет смысл посмотреть на sourceforge.org — я там видел какие-то open-source наработки для pdf или купить коммерческие компоненты.
Здравствуйте, V.Petrovski, Вы писали:
VP>Здравствуйте, Corvin, Вы писали:
C>>Как сделать такое? Как Adobe Acrobat Reader работает с PDF? Через какие API? VP>Есть PDFRasterizer.NET для печати PDF.
Здорово $1599 за PDFRasterizer.NET 1.0 Client Application License А где бы найти то, на чем они этот Rasterizer.NET писали?
C>>>Как сделать такое? Как Adobe Acrobat Reader работает с PDF? Через какие API?
У Adobe Reader есть ActiveX.
Делаешь новую сборку типа ClassLibrary далее Add Reference -> вкладка COM и выбираешь кажется Acrobat Control for ActiveX.
В полученной обертке есть куча методов используя которые можно работать с PDF. Создаешь там UserControl или форму куда помещаешь и настраиваешь обертку. В принципе все работает кроме:
Минусы:
— на клиенте обязательно должен быть Adobe Reader, приложение с оберткой сделанной под Adobe Reader 6.х корректно работает с ридерами версий 5, 4 (и кажется 3). Но в Adobe Reader 7.x сделали все по другому . В итоге пришлось сделать две обертки и подключать в зависимости от версии Adobe Reader у клиента.
— При первой загрузке формы просмотра грузится логотип Adobe Reader и не все элементы Adobe Reader можно отключить при просмотре PDF.
— не работает множественная печать документов. Один документ печатает на ура, а вот несколько никак.
p.s. Для чего отдельная сборка — чтобы позволить приложению работать и корректно отлавливать ошибки если на клиенте нет Adobe Reader.
Здравствуйте, Andre, Вы писали:
C>>>>Как сделать такое? Как Adobe Acrobat Reader работает с PDF? Через какие API?
A>У Adobe Reader есть ActiveX. A>Делаешь новую сборку типа ClassLibrary далее Add Reference -> вкладка COM и выбираешь кажется Acrobat Control for ActiveX. A>В полученной обертке есть куча методов используя которые можно работать с PDF. Создаешь там UserControl или форму куда помещаешь и настраиваешь обертку. В принципе все работает кроме:
О! вот это уже интереснее. И логично — у клиентов нашего проекта должен стоять Acrobat. И не надо платить 1600 баков А где можно доки найти по этим всем методам?
Здравствуйте, Andre, Вы писали:
C>>>>Как сделать такое? Как Adobe Acrobat Reader работает с PDF? Через какие API?
A>У Adobe Reader есть ActiveX. A>Делаешь новую сборку типа ClassLibrary далее Add Reference -> вкладка COM и выбираешь кажется Acrobat Control for ActiveX.
кхм... подключил этот ActiveX, пишу:
PdfLib.PdfClass myDoc = new PdfLib.PdfClass();
myDoc.LoadFile(@"../../e_teil.pdf");
получаю на LoadFile Exception:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll
C>О! вот это уже интереснее. И логично — у клиентов нашего проекта должен стоять Acrobat. И не надо платить 1600 баков А где можно доки найти по этим всем методам?
Мы делали методом научного тыка Доки найшли когда уже все было готово.
C>вот добавил ссылку на него и написал 2 строчки кода, который привел, больше ничего не делал. Он не так работает? А как?
Сорри, виноват . За месяц уже и забыл. Вот только что попробывал, расказываю как точно работает.
1) Создаю WinForms приложение и открываю форму в дизайнере.
2) Открываю Tollbox и вызываю там контекстное меню где выбираю Add/Remove Items.
3) Там переключаюсь на COM components и нахожу этот акробатовский ActiveX, выбираю, что то появляется в toolbox.
4) Беру компонент и ложу на форму включив ему Dock = DockStyle.Fill чтобы запонить все место на форме.
5) Дважды щелкнув на заголовке формы в дизайнере создаю метод Load у формы где прописываю:
this.axPdf1.LoadFile(@"C:\test.pdf ");
Естественно этот файл есть по этому пути. При запуске открывается форма с указанным PDF файлом. Вроде работает.
Здравствуйте, Pavel Kalyakin, Вы писали:
PK>Это пока отдельный продукт — бесплатный add-on к MS SQL Server. В Yukon'е будет уже встроен. Предназначен для создания отчетов. В комплекте идет визуальный редактор отчетов, который встраивается в VS.NET и web-часть, куда публикуются отчеты. Также поставляется ряд web-сервисов, через которые отчеты можно получать в виде .pdf, оффисных форматов и т.д. PK>Также можно дописывать то, что не хватает. Инструмент очень мощный и, повторюсь, бесплатный.
Как так бесплатный? Правда что-ли ... Дайте ссылочку
Здравствуйте, Pavel Kalyakin, Вы писали:
PK>Здравствуйте, Andir, Вы писали:
A>>Как так бесплатный? Правда что-ли ... Дайте ссылочку PK>How to obtain Reporting Services
Здравствуйте, Andir, Вы писали:
A>И с каких пор триал == бесплатный? http://www.microsoft.com/sql/reporting/productinfo/trial.asp
Не вижу связи....
Суть в следующем: сам add-on бесплатный.
Для использования необходима лицензия на SQL 2000.
Скачать не trial действительно нельзя. Если у Вас есть лицензия, то можно скачать не trial с MSDN Subscriber Downloads или заказать себе CD.
Также обязательно ставить SP1, так как много чего исправили...