Re: [api-dev] Vá: Insert a Draw docum ent into a gallery

2007-07-25 Thread Andrew Douglas Pitonyak

My guess is that this is a bug, so I will probably open a bug report.

I did check the code, but there are a few things that require a much 
deeper understanding of the code than I have. Well, it would likely take 
hours to understand even though it is also likely very simple.


See svx/source/unogallery/unogaltheme.cxx

::sal_Int32 SAL_CALL GalleryTheme::insertDrawingByIndex(
   const uno::Reference lang::XComponent  Drawing, sal_Int32 
nIndex )

   throw (lang::WrappedTargetException, uno::RuntimeException)
{
   const ::vos::OGuard aGuard( Application::GetSolarMutex() );
   sal_Int32   nRet = -1;

   if( mpTheme )
   {
   GalleryDrawingModel* pModel = 
GalleryDrawingModel::getImplementation( Drawing );


   if( pModel  pModel-GetDoc()  pModel-GetDoc()-ISA( 
FmFormModel ) )

   {
   nIndex = ::std::max( ::std::min( nIndex, 
getCount() ), sal_Int32( 0 ) );


   if( mpTheme-InsertModel( *static_cast 
FmFormModel* ( pModel-GetDoc() ), nIndex ) )

   nRet = nIndex;
   }
   }

   return nRet;
}



Kálmán Szalai wrote:
  

Andrew Douglas Pitonyak [EMAIL PROTECTED] 07/18/07 1:59 du. 


Worst case:

I will see if I can read the SVG and then export it as a different 
graphic type and then add that to the gallery. If we can run a different 
command line to convert all SVG files to something else, however, that 
might be easier.


---
We can convert it to ODG easily. This method is very same as SVG filter extension 
in OOo. So we can convert SVG-ODG -- the quality of conversion is not perfect 
but good enough, so it produces usable output.
--
The API looks like it claims to support a Draw 
document. If I do not receive an answer here, I will see if I can 
download the latest copy of the code, check the code and then based on 
what I see there, I might open a bug report. the wording sounds like it 
might want something other than the document (because it uses the word 
MODEL, but it also indicates that it wants an XComponent interface).


---
Interesting thing -- gallery - itself does not support sxd and odg files. So 
you can't add it to the gallery via UI. it is might caused because OOo does not 
support self format in gallery internally... I do not know, we mighe have to 
ask ka@ about this.
We have an issue about non importable sxd, odg files into gallery but no 
progression here...


KAMI

Kálmán Szalai wrote:
  

Hello Andrew and Developers!

I checked the stability of SVG filter and some files not converted that
simple command line java application does. This application produce odg
files from svg, so I would like to know how we can import odg files. The
UI of gallery does not support to add odg and sxd files (interesting? -
the gallery supports many formats but not the default OpenOffice.org
formats)... Are there any way to import odg files via API?

Best regards,
KAMI

  


Andrew Douglas Pitonyak [EMAIL PROTECTED] 07/18/07 5:57 de.


  
OOo has very little clipart. I was asked to write a macro that will 
create OOo clipart galleries from existing folders of clipart.


I figured out how to insert links from a URL

oTheme.insertURLByIndex(sURL, 0)

I figured out how to insert the object as a graphic

Dim oProvider  'GraphicProvider service.
oProvider =
createUnoService(com.sun.star.graphic.GraphicProvider)

Dim oProps(0) as new com.sun.star.beans.PropertyValue
oProps(0).Name  = URL
oProps(0).Value = sURL

REM Returns a graphic object from the URL to the graphic.
oTheme.(oProvider.queryGraphic(oProps()), 0)

Apparently, a large collection of available clipart exists in SVG
format.
I installed the SVG importer from here:
http://www.ipd.uni-karlsruhe.de/~hauma/svg-import/ 

I looked at the API, and it looks like I can insert a draw document 
directly:
http://api.openoffice.org/docs/common/ref/com/sun/star/gallery/XGalleryTheme.html 



I tried it using this code:

Dim oDoc
Dim ImportArgs(0) As New com.sun.star.beans.PropertyValue
ImportArgs(0).Name  = FilterName
ImportArgs(0).Value = draw_svg_import
oDoc = StarDesktop.LoadComponentFromURL(sURL, _blank, 0,
ImportArgs())
If NOT IsNull(oDoc) AND NOT IsEmpty(oDoc) Then
  oTheme.insertDrawingByIndex(oDoc, 0)
  oDoc.close(True)
End If

A -1 is returned, which means that the image was not added (I can also

see that the image is not added).

If you want to run the entire macro, it will be here until I resolve 
this problem (at which point, I will likely move it someplace on my 
macros page).


http://www.pitonyak.org/OOoGalleryImport.odt 




  



  


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
My Book: http://www.hentzenwerke.com/catalog/oome.htm
Info:  http://www.pitonyak.org/oo.php
See Also: http://documentation.openoffice.org/HOW_TO/index.html


Re: [api-dev] Vá: Insert a Draw docum ent into a gallery

2007-07-18 Thread Andrew Douglas Pitonyak

Worst case:

I will see if I can read the SVG and then export it as a different 
graphic type and then add that to the gallery. If we can run a different 
command line to convert all SVG files to something else, however, that 
might be easier. The API looks like it claims to support a Draw 
document. If I do not receive an answer here, I will see if I can 
download the latest copy of the code, check the code and then based on 
what I see there, I might open a bug report. the wording sounds like it 
might want something other than the document (because it uses the word 
MODEL, but it also indicates that it wants an XComponent interface).


Kálmán Szalai wrote:

Hello Andrew and Developers!

I checked the stability of SVG filter and some files not converted that
simple command line java application does. This application produce odg
files from svg, so I would like to know how we can import odg files. The
UI of gallery does not support to add odg and sxd files (interesting? -
the gallery supports many formats but not the default OpenOffice.org
formats)... Are there any way to import odg files via API?

Best regards,
KAMI

  

Andrew Douglas Pitonyak [EMAIL PROTECTED] 07/18/07 5:57 de.


OOo has very little clipart. I was asked to write a macro that will 
create OOo clipart galleries from existing folders of clipart.


I figured out how to insert links from a URL

oTheme.insertURLByIndex(sURL, 0)

I figured out how to insert the object as a graphic

Dim oProvider  'GraphicProvider service.
oProvider =
createUnoService(com.sun.star.graphic.GraphicProvider)

Dim oProps(0) as new com.sun.star.beans.PropertyValue
oProps(0).Name  = URL
oProps(0).Value = sURL

REM Returns a graphic object from the URL to the graphic.
oTheme.insertGraphicByIndex(oProvider.queryGraphic(oProps()), 0)

Apparently, a large collection of available clipart exists in SVG
format.
I installed the SVG importer from here:
http://www.ipd.uni-karlsruhe.de/~hauma/svg-import/ 

I looked at the API, and it looks like I can insert a draw document 
directly:

http://api.openoffice.org/docs/common/ref/com/sun/star/gallery/XGalleryTheme.html


I tried it using this code:

Dim oDoc
Dim ImportArgs(0) As New com.sun.star.beans.PropertyValue
ImportArgs(0).Name  = FilterName
ImportArgs(0).Value = draw_svg_import
oDoc = StarDesktop.LoadComponentFromURL(sURL, _blank, 0,
ImportArgs())
If NOT IsNull(oDoc) AND NOT IsEmpty(oDoc) Then
  oTheme.insertGraphicByIndex(oDoc, 0)
  oDoc.close(True)
End If

A -1 is returned, which means that the image was not added (I can also

see that the image is not added).

If you want to run the entire macro, it will be here until I resolve 
this problem (at which point, I will likely move it someplace on my 
macros page).


http://www.pitonyak.org/OOoGalleryImport.odt 




  


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
My Book: http://www.hentzenwerke.com/catalog/oome.htm
Info:  http://www.pitonyak.org/oo.php
See Also: http://documentation.openoffice.org/HOW_TO/index.html

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]