Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2010, 17:05   #1
provodnikam
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 31
Смущение СОХРАНЕНИЕ В ФОРМАТЕ *.PDF

Ребят, помогите макрос написать для OpenOffice.
Смысл такой: брать файлы из указанной папки и сохранять в формате pdf.
Спасибо!!!!
provodnikam вне форума Ответить с цитированием
Старый 08.02.2010, 15:41   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
брать файлы из указанной папки и сохранять в формате pdf.
Несколько вопросов:
  • Какие файлы брать? все подряд - текстовые, графические, бинарные?
  • Какое отношение имеет OpenOffice к данному разделу форума?
  • Почему нельзя воспользоваться специальными утилитами для конвертации файлов в PDF?
EducatedFool вне форума Ответить с цитированием
Старый 10.02.2010, 15:05   #3
provodnikam
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 31
Восклицание

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Несколько вопросов:
  • Какие файлы брать? все подряд - текстовые, графические, бинарные?
  • Какое отношение имеет OpenOffice к данному разделу форума?
  • Почему нельзя воспользоваться специальными утилитами для конвертации файлов в PDF?
Я не знаю таких утилит для MS-Officce....
если есть таковые - посдкажите.
Все файлы в папке формата doc
provodnikam вне форума Ответить с цитированием
Старый 10.02.2010, 15:55   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Так для чего нужен макрос? Для OpenOffice или для Word?
Утилит, в том числе и бесплатных для конвертации в pdf, вагон и маленькая тележка. Стоит только погуглить на тему "виртуальный принтер PDF".
После того, как ты нагуглишь виртуальный принтер, открываешь макросом все документы (функция Dir) и отправляешь их на печать на этот самый принтер. Всё.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 11.02.2010, 07:55   #5
provodnikam
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 31
По умолчанию

А макрос можно???
Я не очень в этом понимаю))))))))))))
provodnikam вне форума Ответить с цитированием
Старый 11.02.2010, 12:37   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пожалуйста. Если принтер PDF уже установлен и настроен (как у меня), то работать будет:
Код:
Sub PrintToPDF()
  Dim FileName As String
  Dim Path As String
  Dim Doc As Document
  Dim n As Long
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку с документами для преобразования в pdf"
    .AllowMultiSelect = False
    If .Show Then Path = .SelectedItems(1) Else Exit Sub
  End With
  Application.ScreenUpdating = False
  FileName = Dir(Path & Application.PathSeparator & "*.doc")
  While Len(FileName) > 0
    n = n + 1
    FileName = Path & Application.PathSeparator & FileName
    Set Doc = Documents.Open(FileName, AddToRecentFiles:=False)
    Doc.PrintOut
    While Application.BackgroundPrintingStatus > 0
      DoEvents
    Wend
    Doc.Close False
    FileName = Dir
  Wend
  Application.ScreenUpdating = True
  MsgBox "Преобразование в PDF завершено. Преобразовано " & n & " документов.", vbInformation + vbOKOnly, "Пакетное преобразование в PDF"
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 12.02.2010, 18:06   #7
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

PDF принтер можно найти, например, здесь:
http://www.dopdf.com/ru/
Однако замечу, что если документы имеют сложную структуру (разбиты на несколько глав/разделов и т.п.) и вы используете Word 2007 SP2, во многих случаях более качественный документ получается не при печати на PDF
принтер а при использовании метода
ActiveDocument.ExportAsFixedFormat, появившегося в Word 2007.
Вместо фрамента:
Код:
Doc.PrintOut
While Application.BackgroundPrintingStatus > 0
    DoEvents
Wend
используйте
Код:
With Doc
     .ExportAsFixedFormat OutputFileName:= Path &,  Application.PathSeparator & Left(.Name, Len(.Name) -3) & "pdf" & _
          ExportFormat:=wdExportFormatPDF, _
          OpenAfterExport:=False, _
          OptimizeFor:=wdExportOptimizeForPrint, _
          Range:= wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
          IncludeDocProps:=True, KeepIRM:=True, _
          CreateBookmarks:= wdExportCreateNoBookmarks, DocStructureTags:=True, 
          BitmapMissingFonts:= True, UseISO19005_1:=False
End with
Кстати, качество получающегося PDF IMHO лучше чем после экспорта из OpenOffice.Org
Можно так же воспользоваться надстройкой
http://www.microsoft.com/downloads/d...b-63b07ba5f2e5

Последний раз редактировалось Aent; 12.02.2010 в 18:19.
Aent вне форума Ответить с цитированием
Старый 19.02.2010, 21:28   #8
provodnikam
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 31
Восклицание

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Пожалуйста. Если принтер PDF уже установлен и настроен (как у меня), то работать будет:
Код:
Sub PrintToPDF()
  Dim FileName As String
  Dim Path As String
  Dim Doc As Document
  Dim n As Long
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку с документами для преобразования в pdf"
    .AllowMultiSelect = False
    If .Show Then Path = .SelectedItems(1) Else Exit Sub
  End With
  Application.ScreenUpdating = False
  FileName = Dir(Path & Application.PathSeparator & "*.doc")
  While Len(FileName) > 0
    n = n + 1
    FileName = Path & Application.PathSeparator & FileName
    Set Doc = Documents.Open(FileName, AddToRecentFiles:=False)
    Doc.PrintOut
    While Application.BackgroundPrintingStatus > 0
      DoEvents
    Wend
    Doc.Close False
    FileName = Dir
  Wend
  Application.ScreenUpdating = True
  MsgBox "Преобразование в PDF завершено. Преобразовано " & n & " документов.", vbInformation + vbOKOnly, "Пакетное преобразование в PDF"
End Sub
у МЕНЯ ЧТО-ТО ВСЁ ЗАВИСАЕТ И НИЧЕГО НЕ ПРЕОБРАЗОВЫВАЕТ!!!!!!!!!!!
мОЖЕТ ПРИНТЕР НЕ ТОТ???
ТЫ КАКОЙ ИСПОЛЬЗУЕШЬ?
provodnikam вне форума Ответить с цитированием
Старый 19.02.2010, 23:17   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Я использую pdfFactory Pro. А если просто отправить документ на печать, работает?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 20.02.2010, 08:03   #10
provodnikam
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Aent Посмотреть сообщение
PDF принтер можно найти, например, здесь:
http://www.dopdf.com/ru/
Однако замечу, что если документы имеют сложную структуру (разбиты на несколько глав/разделов и т.п.) и вы используете Word 2007 SP2, во многих случаях более качественный документ получается не при печати на PDF
принтер а при использовании метода
ActiveDocument.ExportAsFixedFormat, появившегося в Word 2007.
Вместо фрамента:
Код:
Doc.PrintOut
While Application.BackgroundPrintingStatus > 0
    DoEvents
Wend
используйте
Код:
With Doc
     .ExportAsFixedFormat OutputFileName:= Path &,  Application.PathSeparator & Left(.Name, Len(.Name) -3) & "pdf" & _
          ExportFormat:=wdExportFormatPDF, _
          OpenAfterExport:=False, _
          OptimizeFor:=wdExportOptimizeForPrint, _
          Range:= wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
          IncludeDocProps:=True, KeepIRM:=True, _
          CreateBookmarks:= wdExportCreateNoBookmarks, DocStructureTags:=True, 
          BitmapMissingFonts:= True, UseISO19005_1:=False
End with
Этот код, я так понимаю, только для Office 2007 подходит?
provodnikam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как текстовый файл в формате word 2007 переделать в файл в формате ZAY JULIA Microsoft Office Word 13 09.06.2010 19:43
Нарисовать бумагу в клетку 3,5мм и выдать в графическом формате или в PDF. Alex_57 Помощь студентам 0 07.01.2010 15:18
Текст в формате Terminal Dunpeal Общие вопросы Delphi 1 19.12.2007 08:17
Текст в формате RTF Mikola Помощь студентам 2 10.08.2007 10:28