The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Visio - Perl extension mainpulating XML based Visio files

SYNOPSIS

To create a viso vdx file, create multiple pages, reorient one of the pages:

  my $v = new Visio();
  $v->set_title('wabla wabla');
  $v->set_timeCreated();
  $v->set_timeSaved()

  my $page = $v->addpage();
  $page->set_name('my page');
  $page->set_heightWidth(8,11);

  my $page2 = $v->addpage();
  $page2->set_name('my page2');

  $v->toFile('myvisofile.vdx');

ABSTRACT

  This should be the abstract for visio.
  The abstract is used when making PPD (Perl Package Description) files.
  If you don't want an ABSTRACT you should also edit Makefile.PL to
  remove the ABSTRACT_FROM option.

DESCRIPTION

Stub documentation for visio, created by h2xs. It looks like the author of the extension was negligent enough to leave the stub unedited.

Blah blah blah.

Document Methods

new()

A new Visio document is created using the new method:

 my $vDoc = new Visio();

By default the document is completely empty and the document creator is set to 'perl-visio'. This can be overwritten by use of the set_creator method.

toString()

Visio document is returned as an XML string.

 my $vString = $vDoc->toString;

toFile($filename)

Visio doc is written out to an XML file.

 $vDoc->toFile('myfile.vdx');

toXmlDoc()

libxml2 doc element is returned

 $vDoc->toXmlDoc();

set_title($title)

Sets Document title

 $vDoc->set_title('my title');

set_subject($subject)

Sets Document subject

 $vDoc->set_subject('my subject');

set_manager($manager)

Sets Document manager field

 $vDoc->set_manager('my manager');

set_company($company)

Sets company filed in document.

 $vDoc->set_company('my company');

set_desc($desc)

Sets Document description.

 $vDoc->set_desc('my really good description');

set_creator($creator)

Sets Document creator field.

 $vDoc->set_creator('just me');

set_timeCreated($visoTimeString)

Set's document time created information. If time is not passed, the current time (UTC) is set.

 $vDoc->set_timeCreated();

set_timeSaved($visioTimeString)

Set's document time saved information. If time is not passed, the current time (UTC) is set.

 $vDoc->set_timeSaved();

visio_timeformat($time)

Takes in argument of $time, which is in the format of the perl time() function. Returns a $visioTimeString formatted string.

 $vDoc->set_timeCreated(Visio::visio_timeformat(time()));
 
 is equivilent to:

 $vDoc->set_timeCreated();

find_master_dom()

searches the visio masters (stencils). filters can be specifed:

 $vDoc->find_master_dom({name=>'myrectangle'})

returns a libxml nodelist object of all stencils that had name 'myractangle'. Not specifying filters returns all stencils.

filters avaliable:

name

Page Methods

addpage()

A new Visio page is created in a Visio document.

 my $vPage1 = $vDoc->addpage();

By default the document is completely empty and the document creator is set to 'perl-visio'. This can be overwritten by use of the set_creator method.

set_name($name)

Sets the name of the page

 $vPage->set_name('mypage');

set_heightWidth($height,$width)

Sets a page's height and width. In inches by default:

 $vPage->setheightWidth(8,11);

create_pageSheet();

creates a pageSheet method if needed under this page

    my $pageSheet = $vPage->create_pageSheet();

PageSheet methods

For the most part one shouldn't need to directly use these methods

new($parentNode)

new creates (if one does not already exist) a new child PageSheet element node under $parentNode, which is a libxml2 object.

get_node

returns the PageSheet libxml2 node

 my $pageSheetNode = $pageSheet->getnode();

create_pageProps

creates a PageProps object and element under the current PageSheet

PageProps methods

For the most part one shouldn't need to directly use these methods

new($parentNode)

new creates (if one does not already exist) a new child PageProps element node under $parentNode, which is a libxml2 object.

get_node

returns the PageProps libxml2 node

 my $pagePropsNode = $pageProps->getnode();

set_PageWidth($width)

sets the page width of this PageProps node. Default unit is in inches.

 $pageProps->set_PageWidth($width);

set_PageHeight($height)

sets the page height of this PageProps node. Default unit is in inches.

 $pageProps->set_PageHeight($height);

EXPORT

None by default.

SEE ALSO

http://perlvisio.ecsforge.cisco.com

If you have a mailing list set up for your module, mention it here.

AUTHOR

Aamer Akhter, <aakhter@cisco.com> <aakhter@gmail.com>

COPYRIGHT AND LICENSE

Copyright 2005 by Aamer Akhter

This library is free software; you can redistribute it and/or modify it under the same terms as in LICENSE and MSPATENTLICENSE files.

 "This product may incorporate intellectual property owned by 
 Microsoft Corporation. The terms and conditions upon which Microsoft 
 is licensing such intellectual property may be found at 
 http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp"