Текущее время: Вс, янв 20 2019, 14:40

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Пн, окт 22 2018, 15:57 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Добрый день, коллеги.

Подскажите, пожалуйста, метод для открытия pdf-файла в Microsoft Word.
Мне необходимо загрузить pdf в doc/docx и добавить колонтитулы.

Буду благодарна за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE открытие pdf в Microsoft Word
СообщениеДобавлено: Пн, окт 22 2018, 17:26 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 15:51
Сообщения: 1853
Откуда: КраснАдар
Пол: Мужской
Попробуйте этот пример
Code:
INCLUDE ole2incl.

DATA: word            TYPE ole2_object,
      document        TYPE ole2_object,
      selection       TYPE ole2_object,
      paragraphformat TYPE ole2_object,
      font            TYPE ole2_object,
      header          TYPE string,
      inlineshapes    TYPE ole2_object,
      pdf_object      TYPE ole2_object,
      image           TYPE ole2_object,
      find            TYPE ole2_object.

START-OF-SELECTION.

  CREATE OBJECT word 'Word.Application'.
  SET PROPERTY OF word 'Visible' = 1.

  CALL METHOD OF word 'Documents' = document.
  CALL METHOD OF document 'Add'.

  CALL METHOD OF word 'Selection' = selection.
  CALL METHOD OF selection 'ParagraphFormat' = paragraphformat.
  CALL METHOD OF selection 'Font' = font.

  SET PROPERTY OF paragraphformat 'Alignment' = 1.
  SET PROPERTY OF font 'Size' = 16.
  SET PROPERTY OF font 'Bold' = 1.

  MOVE 'ЗАГОЛОВОК' TO header.
  CALL METHOD OF selection 'TypeText'
    EXPORTING
      #1 = header.
  CALL METHOD OF selection 'TypeParagraph'.

  SET PROPERTY OF word 'Visible' = 1.

  GET PROPERTY OF selection 'InlineShapes' = inlineshapes.

  CALL METHOD OF selection 'Find' = find.
  CALL METHOD OF find 'Execute'
    EXPORTING
      #1 = '#position#'.

  CALL METHOD OF inlineshapes 'AddOleObject' = pdf_object
    EXPORTING
      #1 = '0' " ClassType
      #2 = 'C:\Temp\CMR.pdf' " FileName
      .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE открытие pdf в Microsoft Word
СообщениеДобавлено: Пн, окт 22 2018, 18:02 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Спасибо. Я попробовала, но он вставляет в документ только первую страницу из pdf файла, необходимо вставить все страницы.

John Doe написал:
Попробуйте этот пример
Code:
INCLUDE ole2incl.

DATA: word            TYPE ole2_object,
      document        TYPE ole2_object,
      selection       TYPE ole2_object,
      paragraphformat TYPE ole2_object,
      font            TYPE ole2_object,
      header          TYPE string,
      inlineshapes    TYPE ole2_object,
      pdf_object      TYPE ole2_object,
      image           TYPE ole2_object,
      find            TYPE ole2_object.

START-OF-SELECTION.

  CREATE OBJECT word 'Word.Application'.
  SET PROPERTY OF word 'Visible' = 1.

  CALL METHOD OF word 'Documents' = document.
  CALL METHOD OF document 'Add'.

  CALL METHOD OF word 'Selection' = selection.
  CALL METHOD OF selection 'ParagraphFormat' = paragraphformat.
  CALL METHOD OF selection 'Font' = font.

  SET PROPERTY OF paragraphformat 'Alignment' = 1.
  SET PROPERTY OF font 'Size' = 16.
  SET PROPERTY OF font 'Bold' = 1.

  MOVE 'ЗАГОЛОВОК' TO header.
  CALL METHOD OF selection 'TypeText'
    EXPORTING
      #1 = header.
  CALL METHOD OF selection 'TypeParagraph'.

  SET PROPERTY OF word 'Visible' = 1.

  GET PROPERTY OF selection 'InlineShapes' = inlineshapes.

  CALL METHOD OF selection 'Find' = find.
  CALL METHOD OF find 'Execute'
    EXPORTING
      #1 = '#position#'.

  CALL METHOD OF inlineshapes 'AddOleObject' = pdf_object
    EXPORTING
      #1 = '0' " ClassType
      #2 = 'C:\Temp\CMR.pdf' " FileName
      .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE открытие pdf в Microsoft Word
СообщениеДобавлено: Вт, окт 23 2018, 10:36 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 15:51
Сообщения: 1853
Откуда: КраснАдар
Пол: Мужской
Действительно, вставляет как объект...

Задача не тривиальная выходит, можно еще попробовать просто открыть PDF в Word, не на всех версиях будет работать, да и высокие требования к исходному файлу - со сканами беда получается.

Code:
INCLUDE ole2incl.

DATA: word            TYPE ole2_object,
      document        TYPE ole2_object.

START-OF-SELECTION.

  CREATE OBJECT word 'Word.Application'.
  SET PROPERTY OF word 'Visible' = 1.

  CALL METHOD OF word 'Documents' = document.
  CALL METHOD OF document 'OPEN' EXPORTING #1 = 'C:\Temp\CMR.pdf'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE открытие pdf в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 11:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Да, таким образом переносятся все страницы. Тут я столкнулась с другим вопросом.
Выскакивает сообщение в новом окне, что Word преобразует pdf-файл в редактируемый формат и ожидается выбор действия от пользователя. Можно ли это окно как-то игнорировать программно? Еще выскакивало окно выбор преобразования формата, это окно игнорирую параметром ConfirmConversions = 0 при открытии документа.

Попробовала признаки Word.Application: DisplayAlerts и ShowStartupDialog. Не помогло.

Код:

INCLUDE ole2incl.

DATA: word TYPE ole2_object,
document TYPE ole2_object,
documents TYPE ole2_object,
selection TYPE ole2_object,
paragraphformat TYPE ole2_object,
font TYPE ole2_object,
header TYPE string.

START-OF-SELECTION.

CREATE OBJECT word 'Word.Application'.
SET PROPERTY OF word 'Visible' = 1.
* SET PROPERTY OF word 'ShowStartupDialog' = 0.
* SET PROPERTY OF word 'DisplayAlerts' = 0.

CALL METHOD OF word 'Documents' = documents.

CALL METHOD OF documents 'OPEN'
EXPORTING
#1 = 'D:\test.pdf'
#2 = 0
#12 = 0.

CALL METHOD OF word 'ActiveDocument' = document.

CALL METHOD OF word 'Selection' = selection.
CALL METHOD OF selection 'ParagraphFormat' = paragraphformat.
CALL METHOD OF selection 'Font' = font.

SET PROPERTY OF paragraphformat 'Alignment' = 1.
SET PROPERTY OF font 'Size' = 16.
SET PROPERTY OF font 'Bold' = 1.

MOVE 'ЗАГОЛОВОК' TO header.
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = header.

CALL METHOD OF document 'SaveAs2'
EXPORTING
#1 = 'D:\test_changed.pdf'
#2 = 17.

CALL METHOD OF document 'CLOSE'
EXPORTING
#1 = 0.

CALL METHOD OF word 'QUIT'.


John Doe написал:
Действительно, вставляет как объект...

Задача не тривиальная выходит, можно еще попробовать просто открыть PDF в Word, не на всех версиях будет работать, да и высокие требования к исходному файлу - со сканами беда получается.

Code:
INCLUDE ole2incl.

DATA: word            TYPE ole2_object,
      document        TYPE ole2_object.

START-OF-SELECTION.

  CREATE OBJECT word 'Word.Application'.
  SET PROPERTY OF word 'Visible' = 1.

  CALL METHOD OF word 'Documents' = document.
  CALL METHOD OF document 'OPEN' EXPORTING #1 = 'C:\Temp\CMR.pdf'.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 13:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 3020
Пол: Мужской
Почему такой подход?
Вы должны понимать, есть больше риски, что это будет работать не стабильно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 13:44 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Приходят многостраничные pdf, задача состоит в том, чтобы добавить в эти pdf-файлы нижний колонтитул + еще информацию на последней странице.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 15:22 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 3020
Пол: Мужской
Lil написал(а):
Приходят многостраничные pdf, задача состоит в том, чтобы добавить в эти pdf-файлы нижний колонтитул + еще информацию на последней странице.

Приходят откуда и куда? И причем здесь SAP/ABAP?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 15:31 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Всмысле причём? :D
Через SAP PI приходят, кладутся на сервер. Это не важно. Задача изменить pdf-файлы по определенному шаблону, добавив определенные данные. Дальше файлы будут передаваться из системы SAP по e-mail (но это тоже не важно)

Besa написал:
Lil написал(а):
Приходят многостраничные pdf, задача состоит в том, чтобы добавить в эти pdf-файлы нижний колонтитул + еще информацию на последней странице.

Приходят откуда и куда? И причем здесь SAP/ABAP?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 16:00 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 3020
Пол: Мужской
В прямом собственно :)

То есть, на вход внешняя система подает Вам бинарник файла, Вы его хотите открыть на клиентской машине через OLE, изменить его, и отправить новый бинарник дальше?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 16:22 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Пришли pdf-файлы из внешней системы через SAP PI, далее их бинарники записались с таблицу и таким образом они хранятся в системе SAP.
"Вы его хотите открыть на клиентской машине через OLE, изменить его, и отправить новый бинарник дальше" - да, только не на клиентской машине, обработка файлов будет происходить на сервере приложений, без вмешательства пользователя.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 16:27 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 15:51
Сообщения: 1853
Откуда: КраснАдар
Пол: Мужской
У Вас на сервере приложений MS Office установлен? Чтобы полнее картину получить, а то может зазря пытаетесь...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Ср, окт 24 2018, 16:37 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 15:44
Сообщения: 7
Всё установлено и версия тоже проверена, подходит. :)

John Doe написал:
У Вас на сервере приложений MS Office установлен? Чтобы полнее картину получить, а то может зазря пытаетесь...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OLE-открытие файла PDF в Microsoft Word
СообщениеДобавлено: Пт, окт 26 2018, 10:29 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 10:41
Сообщения: 154
Может быть, можно отправить PDF на печать в SPOOL и добавлять колонтитулы там.
Но это только теория.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB