Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 OpenOffice: HTML 2 PDF  [new]
Riska
Member

Откуда: Израиль
Сообщений: 989
Имеется HTML документ. Нужно его сохранить в PDF.
Появилась такая идея: открыть документ в OpenOffice, а потом сохранить в PDF.
Есть пример http://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=31957.
Никак не получается перевести на PB.
Может кто-нибудь помочь?

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
19 май 13, 12:05    [14318289]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
Riska
Member

Откуда: Израиль
Сообщений: 989
Вот это работает.
Документ "C:/1.html" должен быть корректным.
Т.е. нельзя засунуть туда, например, "xml" код.

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
21 май 13, 13:38    [14326472]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Ну и чем это отличается от PDF принтера?
Мне кажется, что данное решение сильно зависит от наличия OpenOffice на компьютере.
IMHO
21 май 13, 15:39    [14327578]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
Riska
Member

Откуда: Израиль
Сообщений: 989
spas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)
21 май 13, 15:48    [14327707]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
medoed
Member

Откуда:
Сообщений: 944
Riska
spas2001,
Наличием PDF принтера.
Остальные причины перечислять? :)


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

P.S.
Я помню в одном украинском банке решили перейти массово на Linux и Open Office, чем закончилось не знаю - свалил я оттуда. Вымораживать он меня стал во многом!
21 май 13, 16:44    [14328319]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
PDF принтеров куча бесплатных, в конце концов GhostScript тоже ничего не стоит
Так что вопрос денег в данном случае как-то не стоит...
21 май 13, 18:37    [14329166]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
medoed
Member

Откуда:
Сообщений: 944
spas2001
PDF принтеров куча бесплатных, в конце концов GhostScript тоже ничего не стоит
Так что вопрос денег в данном случае как-то не стоит...

Ну если эти бесплатные версии, работаю устойчиво и код их OpenSourse,тогда только вопрос к автору остается - чем так плох PDF принтер для его проекта/компании))
21 май 13, 18:41    [14329177]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
Riska1
Guest
medoed,
Я уже объяснял.
1. PDF принтер нужно устанавливать у каждого клиента (это несколько тысяч компов). A OpenOffice уже установлен.
2. PDF принтер не решает проблемы. Изначально была такая задача: имеется стринг (HTML). Его нужно сохранить в PDF. Если тупо печатать, то получим этот же стринг в виде простого текста, а не в красивом виде (HTML).
22 май 13, 09:19    [14330641]     Ответить | Цитировать Сообщить модератору
 Re: OpenOffice: HTML 2 PDF  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Раз установлен, тогда это снимает вопрос.
22 май 13, 09:57    [14330831]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить