Visual Basic 6 - работа с форматом PDF

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dany
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 22.08.2008 (Пт) 11:11

Visual Basic 6 - работа с форматом PDF

Сообщение Dany » 23.07.2009 (Чт) 20:19

Всем здорово! Я как обычно открываю темы в основном связанные с проблемами работы и программирования графики (растровой да и векторной). Сегодня столкнулся с одной проблемой, а именно: как можно изображения, текст, и т.д. сохранить в формате PDF, а также производить чтение этой информации. Я думаю, что во всех моих работах именно этого не хватает, поскольку PDF самый экономичный и распространенный формат хранения информации. С чего мне начать, может кто-то этим уже занимался. Если нет давайте вместе попробуем решить этот вопрос и этот материал будет очень интересен все пользователям, а также очень полезен при работе с файлами и данными. :idea:

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Visual Basic 6 - работа с форматом PDF

Сообщение iGrok » 23.07.2009 (Чт) 21:48

label:
cli
jmp label

Dany
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 22.08.2008 (Пт) 11:11

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Dany » 24.07.2009 (Пт) 13:37

Первая ссылка возможно устарела - пишет страница не найдена, а вторая требует установки лицензионной библиотеки. Других нет ссылок?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Денис » 24.07.2009 (Пт) 15:08

Я тебе так скажу, без ссылок, простым текстом: Ищи PDF-принтер (сотни вариантов), устанавливай в системе, а из проги просто отправляй на печать в PDF-принтер.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: Visual Basic 6 - работа с форматом PDF

Сообщение JohnK » 24.07.2009 (Пт) 15:45

PDF - закрытый формат. Рекомендую открыть файл Acrobat-ом и через OLE Automation с ним работай.
Код: Выделить всё
Option Explicit

Private prAcrobat As Object 'Acrobat.Application
Private prAcrobatDoc As Object
Private prNoAcrobatMsgIsShown As Boolean

Function GetAcrobat() As Object
    If prAcrobat Is Nothing Then
        Set prAcrobat = CreateObject("AcroExch.App")
        prAcrobat.Show
    End If
    Set GetAcrobat = prAcrobat
    If (prAcrobat Is Nothing) And Not prNoAcrobatMsgIsShown Then
      prNoAcrobatMsgIsShown = True
      MsgBox "Acrobat Reader не установлен на данной машине. Просмотр и печать файлов в формате PDF невозможны. Установите Acrobat Reader!", vbCritical
    End If
End Function

Function GetAcrobatDoc() As Object
    If prAcrobat Is Nothing Then GetAcrobat
    If prAcrobatDoc Is Nothing Then
        Set prAcrobatDoc = CreateObject("AcroExch.AVDoc")
        prAcrobatDoc.BringToFront
    End If
    Set GetAcrobatDoc = prAcrobatDoc
    If (GetAcrobatDoc Is Nothing) And Not prNoAcrobatMsgIsShown Then
      prNoAcrobatMsgIsShown = True
      MsgBox "Не могу создать документ PDF. Просмотр и печать файлов в формате PDF невозможны!", vbCritical
    End If
End Function

Public Sub ResetAcrobat()
    If Not prAcrobatDoc Is Nothing Then
      On Error Resume Next
      prAcrobatDoc.Close True
      Set prAcrobatDoc = Nothing
    End If
    If Not prAcrobat Is Nothing Then
      On Error Resume Next
      prAcrobat.CloseAllDocs
      prAcrobat.Exit
      Set prAcrobat = Nothing
    End If
End Sub

Public Sub ShowViaAcrobat(aFile As String)
  Dim Acrobat As Object
  Dim AcrobatDoc As Object
'  Dim Acrobat As Acrobat.CAcroApp
  Set Acrobat = GetAcrobat()
  Set AcrobatDoc = GetAcrobatDoc()
  If AcrobatDoc Is Nothing Then Exit Sub
  On Error GoTo ErrorOpen
  If AcrobatDoc.IsValid Then AcrobatDoc.Close True
  DoEvents
  AcrobatDoc.Open aFile, aFile
  DoEvents
  Acrobat.Show
  DoEvents
  Acrobat.Restore 1
  DoEvents
Exit Sub
ErrorOpen:
  On Error Resume Next
  ResetAcrobat
End Sub

Public Function PrintViaAcrobat(aFile As String, Optional ShowWindow As Boolean = True) As Boolean
  Dim Acrobat As Object
  Dim AcrobatDoc As Object
  Dim pn As Long
 
  Set Acrobat = GetAcrobat()
  Set AcrobatDoc = GetAcrobatDoc()
  If AcrobatDoc Is Nothing Then Exit Function
  On Error GoTo ErrorOpen
  If AcrobatDoc.IsValid Then AcrobatDoc.Close True
  DoEvents
  AcrobatDoc.Open aFile, aFile
  DoEvents
  If ShowWindow Then
    Acrobat.Show
    DoEvents
    Acrobat.Restore 1
    DoEvents
    AcrobatDoc.BringToFront
    DoEvents
  End If
  pn = AcrobatDoc.GetPDDoc.GetNumPages
  DoEvents
  PrintViaAcrobat = AcrobatDoc.PrintPages(0, pn - 1, 0, 1, 1)
  DoEvents
Exit Function
ErrorOpen:
  On Error Resume Next
  ResetAcrobat
End Function
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Хакер » 24.07.2009 (Пт) 17:12

Денис писал(а):Я тебе так скажу, без ссылок, простым текстом: Ищи PDF-принтер (сотни вариантов), устанавливай в системе, а из проги просто отправляй на печать в PDF-принтер.

В PDF бывают гиперссылки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dany
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 22.08.2008 (Пт) 11:11

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Dany » 29.07.2009 (Ср) 12:17

А вариант работы с PDF без акробата. Вот пример: (возможно я сравниваю несравниваемое) когда я через VB6 динамически создаю БД (mdb) пишу запросы и программирую создание столбцов для последующего пополнения БД файлами информации, у меня создается акцесовский файл БД и если даже СУБД Акцесс нет на компе, я все равно могу его открыть своим экзешником, дополнять и изменять. Может акробата у когото нет?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Visual Basic 6 - работа с форматом PDF

Сообщение jangle » 29.07.2009 (Ср) 13:06

Dany писал(а):А вариант работы с PDF без акробата.


Юзай платные компоненты, например Quick PDF Library

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Andrey Fedorov » 29.07.2009 (Ср) 16:17

Dany писал(а):Вкак можно изображения, текст, и т.д. сохранить в формате PDF, а также производить чтение этой информации. Я думаю, что во всех моих работах именно этого не хватает, поскольку PDF самый экономичный и распространенный формат хранения информации.


Выводить - без проблем - тот же ActiveReports умеет сохранять отчеты в PDF.

А вот нафига в нем хранить информацию-то, чтобы потом заморачиваться с нетривиальным способом ее выдирания оттуда? PDF не для этого предназначен. Да и никакой экономичностью он не обладает. Для хранения данных существуют базы данных.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Dany
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 22.08.2008 (Пт) 11:11

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Dany » 10.08.2009 (Пн) 12:29

Есть информация что на vb.net есть приспособления для записи данных в PDF(подробностей нет). Тут возникли вопросы, как я понял - зачем этот формат когда для этого базы есть! Вы не правильно поняли. Пример: как фотошоп сохраняет всю информацию к изображению, все его слои и даже историю, в один фойл PDF или PSD - по структуре они почти равносильны. Adobe создала самый экономичний файл в котором может содержаться и растроваая графика и векторная графика - все инструкции и многие презентации - все это по волшебству укладывается в один формат PDF. Мне интересно как? Вся линейка продуктов Adobe: Photoshop, Indesign, Illustrator и т.д. имею возможность и ее активно используют при работе с PDF. Есть механизм, есть способ перевода и подключения. Большую часть своих программ я посвятил графике - растровой, векторной, есть опубликованные статьи (не здесь). Я имею возможность только сохранять растровые файлы в BMP, Jpg, gif. Векторную графику сохраняю в свой формат файла со своей архитектурой - делал долго - в файл векторная графика записывается описанием каждой фигуры и всех ее свойств, и читаю ее аналогично. Проблема в том, что нужен универсальный формат, при сохранении в который и его чтении информация выглядела одинакого на большинстве машин. Даже маки поддерживать стали этот формат. Adobe сделала PDF - стандартом для хранения и передачи графических и векторных файлов. Как файлы сделанные в моей программе и еще с моим форматом будут читать компы где моей проги нет и никогда небыло? Не ужели придется писать библиотеку и распространять ее с моими файлами для их запуска - мне кажется бред полный. Все билиотеки PDF креатор и т.д. Требуют инсталяции прямо на комп, и с ними работать можно только как со внешними библиотеками! Есть идеи как это сделать? Как конфертировать содержимое графики или тектста в PDF и читать его?

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Visual Basic 6 - работа с форматом PDF

Сообщение pronto » 10.08.2009 (Пн) 15:39

Конкретно по структуре и устройству файла PDF, правда, на английском. Объём, примерно, 500 страниц :shock: . Читать долго, но для старта должно хватить...
Спецификация формата PDF
O, sancta simplicitas!

Dany
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 22.08.2008 (Пт) 11:11

Re: Visual Basic 6 - работа с форматом PDF

Сообщение Dany » 20.08.2009 (Чт) 18:32

Спасибо за ссыллочку - больше идей у народа нет? :?:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 40

    TopList