cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Learn all about PTC Community Badges. Engage with PTC and see how many you can earn! X

Printing Entity-Referenced Graphics Using XSL-FO and Arbortext 5.3

jsillari
1-Newbie

Printing Entity-Referenced Graphics Using XSL-FO and Arbortext 5.3

Adepters:



Has anyone experienced problems with Arbortext 5.3 publishing via XSL-FO
style sheets graphics which are referenced by ENTITY declarations in an
external file?



The XML instance in question contains an ENTITY reference within its
DOCTYPE declaration to an external graphic entity file which Editor uses
to resolve the path to the graphics located on a Windows server:



"[SYSTEM_path]\XML-INSTANCE-GRPH.ent">

%XML-INSTANCE-GRPH;



The graphic entity file on the server contains a list of graphic ENTITY
declarations as follows:









and so on...



The SYSTEM_path can be understood by Arbortext Editor when expressed in
a variety of syntaxes (absolute, relative, UNC, URI); however, when
publishing the XML instance using XSL-FO style sheets on a Windows
platform, informal testing has determined that Arbortext will only
output the graphics according to the following condition matrix:



Graphic Entity SYSTEM_path Graphic Prints

File Location Syntax (Y/N)

------------- ------ -----

Local Absolute Y

Local Relative Y

Local UNC N

Local URI N

Remote Absolute (mapped) Y

Remote Relative N

Remote UNC N

Remote URI N



Where Graphic Entity File Location:

Local = same system as Arbortext client

Remote = Windows network server resource



Where SYSTEM path:

Absolute = "C:\folder\graphic_entity_file.ent"

Relative = ".\graphic_entity_file.ent"

UNC =
"\\server_name\shared_folder_name\sub_folder\graphic_entity_file.ent"

URI =
"file:////server_name/shared_folder_name/sub_folder/graphic_entity_file.
ent"

(mapped) = drive letter is a "mapped" Windows network share



In ALL cases, Arbortext Editor resolves the path to the graphic via the
external graphic entity file and DISPLAYS the graphic in the XML
instance in Editor. When Print Previewing or Composing to PDF, the
XSL-FO style sheets refuse to resolve the path to the graphic under the
conditions noted above and throw an error during composition that the
graphic file could not be opened.



I have not tested this in APE, yet. My suspicion is that the XSLT
processor or FO engine is having trouble with resolving the graphic
entity path whenever the graphic entity file is NOT located on a Windows
drive-letter "mapped" resource (either local or remote).



Any thoughts?



Thanks,



John Sillari

Chief Technologist, Technical Services Division

Dayton T. Brown, Inc.

jsillari@dtb.com <">mailto:jsillari@dtb.com>

631 742 3477 (mobile)

631 244 6239 (direct)



5 REPLIES 5

Is it possible that spaces in directory or file names could be causing
problems?


byork
17-Peridot
(To:jsillari)

John,



Are you using PE? If you are does the user PE is using have access to
the locations? I know I am using unc paths here without a problem both
with editor and PE.


Hi John-



I'm not sure what's happening with your local printing and the different
path types, but unfortunately it gets more complicated when you get to
using PE for this.



PE has a special way of handling graphics, so that Editor can send local
graphic files with the document to the server and the server can do the
right thing with them. This is done using processing instructions, which
FOSI and Styler grok automatically, but which need a little extra work
with XSL-FO. Basically, you have to make sure your XSL-FO stylesheet
copies the PI's from the input to the FO
output in order for PE to be able to find the uploaded graphics and use
them. There will be one PI for each graphic, and it should be copied to
appear *immediately after* the corresponding <fo:external-graphic> in
the output tree.



The good thing about this is that you don't have to worry about graphic
paths at all-if Editor can find the graphics, it will insert all the
necessary info into the _graphic_data PI for you, and upload the actual
graphic when you publish on PE. In fact, when you use this approach, the
contents of the src attribute on <fo:external-graphic> are ignored in
favor of the info in the PI. (But, oddly, even though it's ignored, you
do have to have *some* value for the src attribute-if you just leave it
empty or omit it, the graphic won't appear.)



If you don't use the _graphic_data PI's (by turning the set pegraphicpi
option to "off", or by just not copying them in your XSL-FO stylesheet),
then you do have to worry about getting the path right for the

John,

Is it possible to examine the FO file that results from the XSLT
transformation? It would be interesting to see what is generated for
the graphics for each of the cases in your matrix.

Have you tried playing with the format of URIs? I've found that
different systems seem to like slightly different variations,
especially when it comes to "file:" URIs. Offhand, I'd be inclined to
try two slashes before the server name, rather than four.

-Brandon 🙂

Thanks Ed, Brian, Clay, and Brandon (so far). All good suggestions and
avenues of research which I will persue. I'll let you know how it turns
out.



Regards,

John


Top Tags