Текущее время: Чт, мар 28 2024, 18:47

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


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


ВНИМАНИЕ!

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



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

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

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

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


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Попробуйте этот пример
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, 17:02 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 14: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, 09:36 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

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

Задача не тривиальная выходит, можно еще попробовать просто открыть 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, 10:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 22 2018, 14: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, 12:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

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


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

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


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

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

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


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

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

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

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


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

Сейчас этот форум просматривают: Ahrefs [Bot], Yandex [Bot]


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

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