powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / OpenOffice: HTML 2 PDF
9 сообщений из 9, страница 1 из 1
OpenOffice: HTML 2 PDF
    #38263755
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется HTML документ. Нужно его сохранить в PDF.
Появилась такая идея: открыть документ в OpenOffice, а потом сохранить в PDF.
Есть пример http://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=31957.
Никак не получается перевести на PB.
Может кто-нибудь помочь?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
OLEObject lole_OpenOfficeCalc, lole_desctop, lole_PropertyValue, lole_pdf
any la_openargs[]
int li_status
string	ls_ErrTitle

lole_OpenOfficeCalc = CREATE OLEObject
lole_desctop = CREATE OLEObject
lole_pdf = CREATE OLEObject

li_status = lole_OpenOfficeCalc.ConnectToNewObject("com.sun.star.ServiceManager")

if li_status<>0 then 
destroy lole_OpenOfficeCalc
	MessageBox(ls_ErrTitle, 'Connect')
return -1
end if

lole_desctop = lole_OpenOfficeCalc.CreateInstance("com.sun.star.frame.Desktop")
//lole_PropertyValue = lole_desctop.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
//lole_PropertyValue.Name = "FilterName"
//lole_PropertyValue.Value = "HTML (StarCalc)"
//la_openargs[1] = lole_PropertyValue
//
lole_desctop.LoadComponentFromURL('file:///C:/1.html', "_blank", 0, la_openargs)
// До этих пор все нормально - документ открылся. Теперь нужно сохранить его в PDF
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38266245
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это работает.
Документ "C:/1.html" должен быть корректным.
Т.е. нельзя засунуть туда, например, "xml" код.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
OLEObject 	lobj_ServiceManager, lobj_Desktop, lobj_Doc, lobj_PropertyValue[]
String ls_start_url = "C:/1.html" // Start file
String ls_new_url = "C:/1.pdf" // Finish file

// Service Manager 
lobj_ServiceManager = CREATE OLEObject 
IF lobj_ServiceManager.ConnectToNewObject("com.sun.star.ServiceManager") < 0 Then 
	MessageBox("Error", "Cound not connect to OpenOffice") 
	RETURN
End IF 

// Create the Desktop 
lobj_Desktop = lobj_ServiceManager.createInstance("com.sun.star.frame.Desktop") 

// Load File
lobj_PropertyValue[1] = lobj_ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue") 

// Hidden + Sleep
lobj_PropertyValue[1].Name = "Hidden" 
lobj_PropertyValue[1].Value = true

ls_start_url = "file:///" + ls_start_url
lobj_Doc = lobj_Desktop.loadComponentFromURL(ls_start_url, "_blank", 0, lobj_PropertyValue[]) 

Sleep(1) // Without "Sleep" will be blank page in PDF (first page will be blank)

// Save to PDF
lobj_PropertyValue[1].Name = "FilterName" 
lobj_PropertyValue[1].Value = "writer_pdf_Export" 
ls_new_url = "file:///" + ls_new_url
lobj_Doc.storeToURL(ls_new_url, lobj_PropertyValue[]) 

// Close & Destroy
lobj_Doc.dispose() 
lobj_ServiceManager.disconnectobject() 
DESTROY lobj_ServiceManager
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38266560
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и чем это отличается от PDF принтера?
Мне кажется, что данное решение сильно зависит от наличия OpenOffice на компьютере.
IMHO
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38266583
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38266736
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riskaspas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)

Тут наверное от многих факторов зависит, от локализации и жлобства компании в том числе.
В крупной конторе, наверняка не будут экономить на windows, microsoft и если нужно перейти на свежую версию Power или купить pdf принтер.
Есть наверное и те компании, которые экономят на всем - даже на офисе и вместо винды -> Linux.

P.S.
Я помню в одном украинском банке решили перейти массово на Linux и Open Office, чем закончилось не знаю - свалил я оттуда. Вымораживать он меня стал во многом!
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38267055
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PDF принтеров куча бесплатных, в конце концов GhostScript тоже ничего не стоит
Так что вопрос денег в данном случае как-то не стоит...
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38267062
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001PDF принтеров куча бесплатных, в конце концов GhostScript тоже ничего не стоит
Так что вопрос денег в данном случае как-то не стоит...
Ну если эти бесплатные версии, работаю устойчиво и код их OpenSourse,тогда только вопрос к автору остается - чем так плох PDF принтер для его проекта/компании))
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38267659
Riska1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,
Я уже объяснял.
1. PDF принтер нужно устанавливать у каждого клиента (это несколько тысяч компов). A OpenOffice уже установлен.
2. PDF принтер не решает проблемы. Изначально была такая задача: имеется стринг (HTML). Его нужно сохранить в PDF. Если тупо печатать, то получим этот же стринг в виде простого текста, а не в красивом виде (HTML).
...
Рейтинг: 0 / 0
OpenOffice: HTML 2 PDF
    #38267721
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз установлен, тогда это снимает вопрос.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / OpenOffice: HTML 2 PDF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]