Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / OpenOffice: HTML 2 PDF / 9 сообщений из 9, страница 1 из 1
19.05.2013, 12:05
    #38263755
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice: HTML 2 PDF
Имеется 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
21.05.2013, 13:38
    #38266245
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice: HTML 2 PDF
Вот это работает.
Документ "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
21.05.2013, 15:39
    #38266560
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice: HTML 2 PDF
Ну и чем это отличается от PDF принтера?
Мне кажется, что данное решение сильно зависит от наличия OpenOffice на компьютере.
IMHO
...
Рейтинг: 0 / 0
21.05.2013, 15:48
    #38266583
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice: HTML 2 PDF
spas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)
...
Рейтинг: 0 / 0
21.05.2013, 16:44
    #38266736
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice: HTML 2 PDF
Riskaspas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)

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

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


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