Fix for the problem that SDL applications exited
[AROS-Contrib.git] / apdf / doc / Apdf.guide
blobf8bc90d674996dbb5d3cceb2ca48a947bcbf55a3
1 @database "Apdf.guide"
2 @author "Emmanuel Lesueur"
3 @(c) "Copyright © 1999-2005 Emmanuel Lesueur"
4 @$VER: Apdf.guide 3.4 (31.10.2005)
5 @width 72
6 @wordwrap
8 @node Main "Apdf.guide"
10                             Apdf 3.4
11                          Vpdf.VPlug 2.4
13        Adapted from Xpdf 3.01 - ©1996-2005 Glyph & Cog, LLC
15                        by Emmanuel Lesueur
20                 @{" Introduction " link introduction}
21                 @{" System requirements " link systreq}
23                 @{" Installation " link installation}
24                 @{" Configuration " link configuration}
25                 @{" Starting Apdf " link starting}
26                 @{" Usage " link usage}
28                 @{" Fonts " link fonts}
29                 @{" Cache " link cache}
31                 @{" Questions and answers" link faq}
32                 @{" Known problems " link prob}
34                 @{" Legal stuff " link legal}
35                 @{" Distribution " link distribution}
36                 @{" Source " link source}
37                 @{" Support " link support}
38                 @{" Future " link future}
39                 @{" Thanks " link thanks}
40                 @{" History " link history}
43 @endnode
45 @node introduction "Introduction"
47 Apdf is a port of Derek B. Noonburg's PDF viewer, xpdf 3.01. It can read
48 PDF version 1.5 files.
50 Vpdf.VPlug is a PDF plugin for Voyager 3.1+, Oliver Wagner's web browser.
52 @endnode
55 @node systreq "System requirements"
57 To use Apdf, you need a HiColor or TrueColor graphic mode.
59 @endnode
62 @node installation "Installation"
64 Use the supplied installer script to install  Apdf  and/or  the  Voyager
65 plugin.   Then   load   the   Test.pdf  document  to  check  your  fonts
66 configuration.
68 To uninstall Apdf, just delete its directory.
70 To uninstall the plugin, delete  Vpdf.VPlug  and  Data/Vpdf.config  from
71 Voyager's "Plugins" subdirectory.
73 @endnode
76 @node configuration "Configuration"
78 There is one important  thing  to configure to make Apdf or the  Voyager
79 plugin usable: the font map.
81 The install script should have taken care of the  fonts,  provided  that
82 you had either the Apdf_fonts.lha archive or a Ghostscript installation.
83 You can check that with the test.pdf document. If this doesn't work, see
84 @{"Fonts" link fonts}.
86 @endnode
90 @node starting "Starting Apdf"
92     @{u}From CLI:@{uu}
94 Just type "Apdf" in a shell to start Apdf.  A  requester  asking  for  a
95 document  will  open.  To  view the file "myfile.pdf", you can also type
96 "Apdf myfile.pdf".
98 The complete command template is:
100       PDFFILE,P=PAGE/K,Z=ZOOM/N/K,C=CONFIG/K,MODULE/K,NOPOWERUP/S
102     PDFFILE       is the name of the file to display.
104     PAGE          is the page to display. If the document uses
105                   custom page labels, this argument should either
106                   be one of those custom labels, or a decimal
107                   number preceded by the "#" sign (to override
108                   the custom scheme). Defaults to the first page.
110     ZOOM          is the zoom factor, from -5 to 5. Defaults to 1.
112     CONFIG        is the name of the configuration file to use.
113                   Defaults to "PROGDIR:Apdf.config".
115     MODULE        is the name of the 68k or PPC module to use.
116                   Defaults to whatever is the most suited for the
117                   configuration among the modules in "PROGDIR:".
119     NOPOWERUP     tells Apdf not to try to use a PPC module.
121     PUBSCREEN     specify the public screen to use.
123 Before parsing the arguments, Apdf will look in its icon and then in the
124 document's  icon  for  tooltypes with those names (except "PDFFILE"). If
125 some are found, their values override the defaults values.
128     @{u}From Ambient:@{uu}
130 To start Apdf from Ambient, double click on its  icon.  This  will
131 open a requester where you can select the document do view. You can also
132 click once on Apdf's icon and double click on  the  PDF  document  while
133 holding  the shift key, or Apdf can be used as the default tool of a PDF
134 document.
136 Apdf supports the "PAGE", "ZOOM", "CONFIG", "MODULE",  "NOPOWERUP",  and
137 "PUBSCREEN"  tooltypes  with  the  same meaning as the corresponding cli
138 arguments The tool types stored in Apdf's icon are read first,  and  are
139 overridden by those of the document's icon.
141 A document icon can also contain  other  tooltypes,  configured  in  the
142 @{"Document Settings" link docsettings}.
144 To quit Apdf, just close its window. You  can  also  use  the  commodity
145 interface, send a "QUIT" command from ARexx, or send a CTRL-C signal.
147 @endnode
150 @node fontmapsyntax "FONTMAP"
152 Note: the fontmap format has changed ! Since  Apdf  can  no  longer  use
153 Amiga fonts, the old fontmaps are useless anyway.
156 FONTMAP arguments use the following format:
158         pdf_font_name/actual_font_file[type]
160 Possible types are:
162         'T1' for Type1 fonts.
163         'TT' for TrueType fonts.
165 There @{b}must@{ub} be a type field.
167 @endnode
170 @node fonts "Fonts"
172 Apdf no longer uses the standard Amiga  font  system  to  display  text.
173 Instead  it  as  internal  support for Type1/1C and TrueType fonts. This
174 allows higher quality rendering and  support  for  embedded  fonts,  but
175 requires  that you install some of those fonts. This also means that the
176 fontmaps used by previous versions can no longer be used with Apdf  2.0.
177 However,  given  the  support for embedded fonts, fontmaps are much less
178 useful now.
180 You can find freely distributable Type1 fonts in the  fonts  archive  of
181 the Ghostscript distribution, or in the Apdf_fonts.lha archive, which is
182 a subset of the Ghostscript fonts archive. You should at  least  install
183 equivalents for the following 14 fonts PostScript fonts:
185      PostScript font     |  Ghostscript equivalent
186 -------------------------+--------------------------
187   Helvetica              |      n019003l.pfb
188   Helvetica-Bold         |      n019004l.pfb
189   Helvetica-Oblique      |      n019023l.pfb
190   Helvetica-BoldOblique  |      n019024l.pfb
191   Times-Roman            |      n021003l.pfb
192   Times-Bold             |      n021004l.pfb
193   Times-Italic           |      n021023l.pfb
194   Times-BoldItalic       |      n021024l.pfb
195   Courier                |      n022003l.pfb
196   Courier-Bold           |      n022004l.pfb
197   Courier-Oblique        |      n022023l.pfb
198   Courier-BoldOblique    |      n022024l.pfb
199   Symbol                 |      s050000l.pfb
200   ZapfDingbats           |      d050000l.pfb
202 The fonts in the right column are those in the Apdf_fonts.lha archive.
205 It may also be a good  idea  to  install  the  following  25  additional
206 Postscript  fonts,  although  the PDF specifications don't require them,
207 since they are often used. They also have equivalents in the Ghostscript
208 fonts archive (except for the Helvetica-Condensed family, AFAIK).
211      PostScript font            |  Ghostscript equivalent
212 --------------------------------+--------------------------
213   AvantGarde-Book               |     a010013l.pfb
214   AvantGarde-BookOblique        |     a010033l.pfb
215   AvantGarde-Demi               |     a010015l.pfb
216   AvantGarde-DemiOblique        |     a010035l.pfb
217   Bookman-Demi                  |     b018015l.pfb
218   Bookman-DemiItalic            |     b018035l.pfb
219   Bookman-Light                 |     b018012l.pfb
220   Bookman-LightItalic           |     b018032l.pfb
221   Helvetica-Narrow              |     n019043l.pfb
222   Helvetica-Narrow-Oblique      |     n019063l.pfb
223   Helvetica-Narrow-Bold         |     n019044l.pfb
224   Helvetica-Narrow-BoldOblique  |     n019064l.pfb
225   NewCenturySchlbk-Roman        |     c059013l.pfb
226   NewCenturySchlbk-Italic       |     c059033l.pfb
227   NewCenturySchlbk-Bold         |     c059016l.pfb
228   NewCenturySchlbk-BoldItalic   |     c059036l.pfb
229   Palatino-Roman                |     p052003l.pfb
230   Palatino-Italic               |     p052023l.pfb
231   Palatino-Bold                 |     p052004l.pfb
232   Palatino-BoldItalic           |     p052024l.pfb
233   Helvetica-Condensed           |
234   Helvetica-Condensed-Bold      |
235   Helvetica-Condensed-Oblique   |
236   Helvetica-Condensed-BoldObl   |
237   ZapfChancery-MediumItalic     |     z003034l.pfb
240 If you have the original Postscript fonts,  and  their  filenames  match
241 exactly  the  names in the left columns above (optionally with ".pfa" or
242 ".pfb" appended), you don't need to configure a fontmap.
244 If you use the Ghostscript  replacements,  either  from  the  Apdf_fonts
245 archive  or  from  the Ghostscript distribution, the installation script
246 builds the fontmap automatically.
248 In any other cases, you have to configure the  fontmap  yourself.  There
249 are two things to do:
251 1) go the "Global settings" menu entry, and then  to  the  @{"Fonts  dirs" link glbprf_fontdirs}.
252 page, and enter the list of directories that contain your fonts.
254 2) go to the "Font map" page of the same window and see @{"here" link fontmap}.
258 Below is a complete description of the way Apdf selects the font to use.
259 It  may  seem  complex, but it is quite simple to use. You don't have to
260 read this explanation to use Apdf, but it can help  you  build  powerful
261 fontmaps.
264 When a document asks for the font "XYZ" (e.g.  "Helvetica")  of  type  T
265 (e.g. Type1), Apdf does the following:
267 1) look in the current fontmap for "XYZ" (the document-specific  fontmap
268 first,  and  then  the  global  one  if  necessary). If it is found, use
269 replace  "XYZ"  by  the  name  given  in  the  fontmap  and  T  by   the
270 corresponding type, and go on.
272 2) if "XYZ" was not in the fontmap, and the  font  is  embedded  in  the
273 document  and  T=Type1,  Type1C,  Type3,  or TrueType, use this embedded
274 font.
276 3) otherwise if T=Type1 or TrueType, in each  directory  listed  in  the
277 "font dirs" listview in the preference window do:
278      - try to open file "XYZ". If found use that font.
279      - otherwise, if "XYZ" does not contain an extension (e.g.  ".pfb"),
280        try to open "XYZ.pfb" or "XYZ.pfa" (if T=Type1), and "XYZ.ttf" if
281        (T=TrueType). If one is found, use it.
283 4) otherwise, look at the properties specified in the document  for  the
284 font: fixed width, serif, script, all caps, small caps, italic, or bold.
285 Apdf builds a font name by concatenating the property  names  above,  in
286 the  above  order, separated by ", ", and enclosed between "« " and " »"
287 (e.g. a font that has the "bold" and "small caps" properties, would lead
288 to  the name "« small caps, bold »"). Then the name built is searched in
289 the fontmap (document specific one first, then global one, and then  the
290 internal  one  (*)), and if it is found, "XYZ" is replaced by the mapped
291 font, and points 1) and 3) are repeated.
293 5) if there is still no font found, point 4) is repeated, ignoring
294 the "small caps" property, then ignoring also the "all caps" property,
295 and then the "script" property.
299 (*) The internal fontmap contains the following entries:
300   «  »                          -> Helvetica
301   « italic »                    -> Helvetica-Oblique
302   « bold »                      -> Helvetica-Bold
303   « italic, bold »              -> Helvetica-BoldOblique
304   « serif »                     -> Times-Roman
305   « serif, italic »             -> Times-Italic
306   « serif, bold »               -> Times-Bold
307   « serif, italic, bold »       -> Times-BoldItalic
308   « fixed width »               -> Courier
309   « fixed width, italic »       -> Courier-Oblique
310   « fixed width, bold »         -> Courier-Bold
311   « fixed width, italic, bold » -> Courier-BoldOblique
313 @endnode
316 @node cache "Cache"
318 Apdf implements a basic caching system to  speed  up  document  loading.
319 This   system  can  be  controlled  by  two  parameters,  CACHESIZE  and
320 CACHEBLOCKSIZE, that represent memory amounts in Kbytes. Setting them to
321 "good" values can improve Apdf's performance a lot.
323 CACHESIZE determines the maximum amount of memory that is used  by  Apdf
324 for  caching  purposes. If CACHESIZE is zero, or if a document's size is
325 smaller than CACHESIZE, the document will be fully loaded in memory  and
326 kept there until you quit Apdf or load another document.
328 If CACHESIZE if non-zero or if the document is too big, Apdf  will  keep
329 at most N=CACHESIZE/CACHEBLOCKSIZE blocks of BLOCKSIZE Kbytes in memory.
330 When a part of the file that is not in memory is needed and Apdf already
331 has the maximum number of blocks, it frees the one that was not accessed
332 for the longest period, and replaces it by the new one.
334 In any cases, Apdf won't use more memory than what is actually needed.
336 The parameters that give  the  best  performance  depend  on  a  lot  of
337 factors, such as:
339 - the disk speed,
340 - the filesystem (FFS is slow)
341 - the parameters of the filesystem (block size, buffers,...),
342 - whether or a caching program is used,
343 - the speed of the processor,
344 - the particular document you are trying to load.
346 Depending on your system, you'll have to try different settings to  find
347 which parameters are the best for you. Some rules of thumb are:
349 - If you have lots of memory and don't have a  too  slow  disk,  setting
350 CACHESIZE=0 is probably the fastest.
351 - otherwise, the bigger CACHESIZE is the better.
352 - using too big values for CACHEBLOCKSIZE can reduce the speed.
353 - the ratio CACHESIZE/CACHEBLOCKSIZE should be "big enough".
355 By default, Apdf uses CACHESIZE=256 and CACHEBLOCKSIZE=4.
357 @endnode
360 @node usage "Usage"
362         @{" Main window " link mainwin}
363         @{" Menus " link menus}
364         @{" Keyboard shortcuts " link shortcuts}
365         @{" Save window " link savewin}
366         @{" Global settings window " link glbsettings}
367         @{" Document settings window " link docsettings}
368         @{" Fonts windows " link scanfonts}
369         @{" ARexx " link arexx}
370         @{" MUI " link mui}
372 @endnode
375 @node mainwin "Main window"
377 The current page of the document is displayed in the upper part  of  the
378 window.  Dragging  the mouse with the left button pressed selects a part
379 of the text. You can copy the text selected to the  clipboard  with  the
380 'Copy'  menu.  You  can  also use the selection box as a "crop box" (see
381 @{"Menu" link menus}/Crop).
383 Pressing the left mouse button while holding the CTRL  key,  or  holding
384 the  middle  mouse  button, magnifies the part of the document under the
385 mouse. The "lens" follows the mouse until the button is released.
387 If the mouse is moved over a link, its destination will be displayed  in
388 the lower right corner of the window. Clicking on the link activates it.
389 If the link is an URL, the command specified with the URLCmd  option  is
390 called.
392 The gadgets let you choose the current page and zoom factor. The  "Back"
393 and  "Forward"  buttons  allows navigation inside the history of already
394 displayed pages.
396 You can enter a string to search in the 'Search' gadget. The  search  is
397 not case sensitive. It starts after the current selected area, or at the
398 top of the page if nothing is selected. If the end of  the  document  is
399 reached before the string is found, the begining of the document will be
400 searched, until the position where the search started. If the string  is
401 found,  it  will be selected. Pressing the 'Next' button will search the
402 next occurence of the same string.
404 Dropping an icon in the main window loads the corresponding document.
406 @endnode
409 @node menus "Menus"
411   Project:
413     "About"        - show some informations about Apdf/Xpdf.
414     "About MUI"    - show the standard MUI information window.
415     "New Document" - open a new document in a new window.
416     "New View"     - open another window with the same document.
417     "Open"         - open a new document in the current window.
418     "Save as"      - open the @{"Save window" link savewin}.
419     "Print"        - open the @{"Save window" link savewin} with filename
420                      set to the device selected in the
421                      @{"Global Settings/General" link glbprf_general} window and mode
422                      set to "Postscript".
423                      @{b}Attn: you must have a Postscript printer, or a
424                      device that transparently converts postscript for
425                      your printer for this to work.@{ub}
426     "Save form as" - save the content of the fields of a PDF form to a
427                      FDF file.
428     "Import FDF"   - fill a PDF form with the content of a FDF file.
429     "Hide"         - iconify Apdf.
430     "Quit"         - quit.
432   Edit:
434     "Copy"         - copy the selected text in the clipboard.
436   View:
438     "Refresh"      - redraw the current page. Useful if you use the
439                      "fit page" or "fit width" zoom modes, resize your
440                      window, and want the page to be scaled accordingly.
441     "Crop"         - cut the current view along the selected box.
442     "UnCrop"       - restore the full page size.
443     "Rotate left"  - rotate the view 90° on the left.
444     "Rotate right" - rotate the view 90° on the right.
445     "Add row"      |
446     "Remove row"   | control the number and layout of visible pages.
447     "Add column"   |
448     "Remove column"|
449     "Informations" - show some informations about the document.
450     "Outlines"     - show the document outlines, if available.
451     "Fonts"        - shows the fonts used in the document. See @{"here" link scanfonts}.
452     "Error log"    - show the latest error messages.
454   Settings:
456     "Global Settings"       - open the @{"Global Settings window" link glbsettings}.
457     "Document Settings"     - open the @{"Document Settings window" link docsettings}.
458     "MUI"                   - open the @{"MUI" link mui} preference editor.
459     "Text anti-aliasing"    - control @{"anti-aliasing" link aa} for the text.
460     "Strokes anti-aliasing" - control @{"anti-aliasing" link aa} for lines drawing.
461     "Fills anti-aliasing"   - control @{"anti-aliasing" link aa} for polygon filling.
462     "Continuous"            - display the document as a big vertical strip
463                             - containing all pages.
464     "Display mode"          - choose the way the pages are rendered:
465           "One pass"            - render the whole page in memory and
466                                   update the display only when done.
467           "Text first"          - first display the page ignoring all
468                                   inline pictures, then build the full
469                                   page image in memory and update when
470                                   done.
471           "Progressive"         - render the page in memory in one go,
472                                   but periodically update the display
473                                   to show the current state.
474     "Show navigation bar"   - show/hide the first line of buttons (page
475                               number slider and history navigation).
476     "Show tool bar"         - show/hide the second line of buttons (zoom
477                               selection, search tool, URL display).
478     "Full screen"           - switch to full screen mode: don't display
479                               any window or gadget.
481 @endnode
484 @node aa "Anti-aliasing"
486 Apdf now has a basic anti-aliasing system. Anti-aliasing is a  technique
487 that  makes  use of color shades to make the resolution seem higher than
488 it actually is.
490 The implementation used in Apdf is really basic, and  assumes  that  the
491 graphic element to render is put on a uniform background. If this is not
492 the case, anti-aliasing can make things look worse  instead  of  improve
493 them. In that case, you should turn anti-aliasing off.
495 Also note that anti-aliasing will probably not look good on screens with
496 low depth, or low resolution.
498 @endnode
501 @node shortcuts "Keyboard shortcuts"
503 The following shortcuts are supported in the main window @{b}when the active
504 object  is  the  document  page@{ub}.  That  means that if a string gadget is
505 active you have to deactivate it first with the appropriate MUI shortcut
506 (Ctrl-Tab by default).
508 space       - scroll down, skipping to next page if needed.
509 backspace   - scroll up, returning to previous page if needed.
510 '+'         - increase the zoom factor.
511 '-'         - decrease the zoom factor.
512 'l'         - rotate left.
513 'r'         - rotate right.
514 'c'         - crop.
515 'u'         - uncrop.
516 shift+Fn    - set a bookmark
517 Fn          - got to a bookmark
519 The following MUI shortcuts (configured by the  MUI  preference  editor)
520 are also recognized:
522 Up   - scroll up, returning to previous page if needed.
523 Down - scroll down, skipping to next page if needed.
524 PgUp - previous page.
525 PgDn - next page.
526 Home - first page.
527 End  - last page.
529 Also, the middle mouse button, or  Ctrl+left  mouse  button,  trigger  a
530 magnification lens.
532 Note that pressing the Help key over a gadget loads  the  page  of  this
533 guide related to it (if Apdf.guide is in PROGDIR:).
535 @endnode
538 @node savewin "Save window"
540 This window allows you to select parameters to save  a  part  of  a  PDF
541 document in another format.
543 There are several possible save modes:
545 In "text" mode, all  the  graphics/pictures/fonts...  are  ignored.  The
546 resulting file will contain plain ASCII text.
548 In "image" mode, the text is ignored. In this  mode,  apdf  outputs  one
549 file  per  image  in the selected pages. If the filename selected in the
550 "file" gadget is "abc", the resulting files will be named "abc-nnn.xxx",
551 where  nnn  is  a  number  and  xxx  is  either  "ppm", "pbm", or "jpg",
552 according  to  the  picture  format  used.  If  the  selected  mode   is
553 "PBM/PPM/JPEG",  and  a  picture  is stored in the DCT format in the PDF
554 file, it is saved as a jpeg file.  Otherwise,  monochrome  pictures  are
555 saved  as  PBM  files  and  non-monochrome  ones as PPM files. There are
556 datatypes on Aminet for all those formats.
558 In "Postscript" mode, both text and graphics are saved. The  "Postscript
559 level  1"  mode  creates  files  that are bigger and in which images are
560 converted to black and white,  but  which  can  be  used  with  level  1
561 printers.
563 The zoom and rotation parameters are only used in Postscript mode.
565 @endnode
568 @node arexx "ARexx interface"
570 In addition to the standard ARexx commands provided by MUI, Apdf has the
571 following:
573     OPEN    FILE/A,P=PAGE/K,Z=ZOOM/N/K,R=ROTATE/N/K
575 It opens the specified  PDF  file  in  a  new  window,  with  the  given
576 parameters.
578 @endnode
581 @node glbsettings "Global Settings Window"
583 The global settings window let you configure  some  parameters  used  by
584 Apdf.  Those  settings  are saved in a config file:"PROGDIR:Apdf.config"
585 for   Apdf   (unless   overriden   by   the   CONFIG   tooltype),    and
586 "PROGDIR:Plugins/Data/Vpdf.config" for the plugin.
588 This window is organized as a register containing four pages:
590     @{" General " link glbprf_general}
591     @{" Font directories " link glbprf_fontdirs}
592     @{" Font map " link fontmap}
593     @{" Advanced " link glbprf_advanced}
595 Below are the three buttons usually found in configuration windows:
597 "Save"   - make the new settings active and save them in the config file
598 "Use"    - make the new settings active.
599 "Cancel" - close the settings window, forgetting all changes.
601 @endnode
604 @node glbprf_general "General Settings"
606 This page lets you adjust the following settings:
608 * URL command. (Apdf only)
610   This is the command used when you  activate  a  URL  style  link.  The
611 string  entered  should  contain a "%s", that is replaced by the URL. It
612 should name a command that starts your prefered Web browser. Defaults to
613 "OpenURL %s".
615 * Temp. directory. (Plugin only)
617   Directory used to store temporary files. Don't use a  RAM  disk  here,
618 use a big cache size instead.
620 * Print device.
622   The device used as destination when you select the "Print" menu  item.
623 This  device  should  be  able  to  print  Postscript  files.  To  use a
624 Postscript printer, this may be "PAR:". To  use  with  Turboprint,  this
625 should be "PS:". Defaults to "PRT:".
627 * Default icon. (Apdf only)
629   This icon is added to documents that don't have one,  when  trying  to
630 save  document  specific  settings.  Don't  include  the ".info" suffix.
631 Defaults to "ENV:Sys/def_pdf".
633 * Selection color.
635   The color used to draw the selection box. Defaults to red.
637 * Anti-aliasing.
639   The  three  checkboxes  reflects  the  state  that  should  have   the
640 anti-aliasing parameters at program startup.
642 * Auto open log. (Apdf only)
644   If this gadget is checked, the Log window is opened  everytime  a  new
645 message  is  added  to  it. If it is not, you will not be warned when an
646 error occurs (you can still view the  messages  by  opening  the  window
647 yourself via the "Open log" menu).
649 * Continuous.
651   The initial state of the "Continuous" menu item.
653 * Display mode.
655   The initial display mode.
657 * Columns.
659   The default number of columns.
661 * Rows.
663   The default number of rows.
666 @endnode
669 @node glbprf_fontdirs "Font directories"
671 This page contains the list of directories in which Apdf  searches  when
672 it  need fonts. These directories should contain Type1 (.pfa or .pfb) or
673 TrueType (.ttf) fonts. You @{b}must@{ub} set at least a valid entry in this list,
674 or Apdf won't be able to display any text that has not its font embedded
675 in the document.
677 See @{"Fonts" link fonts} for details.
679 @endnode
682 @node fontmap "Font map"
684 The fontmaps let you describe the relation between font  names  as  they
685 are  given in PDF documents (Postscript font names), and font files that
686 should be used to actually display the text.
688 For instance, if you use the fonts in the Ghostscript distribution,  the
689 name  of the file that contain a replacement for the "Helvetica" font is
690 "n019003l.pfb". As Apdf can not guess that, you have to tell it. This is
691 done  by adding a fontmap line, with "PDF Font" set to "Helvetica" (case
692 sensitive), "Font" set to "n019003l.pfb" (case insensitive,  as  it's  a
693 filename),  and  "Type"  set to "Type1" (Apdf could guess that last bit,
694 but it currently doesn't).
696 If font's filename is equal to its PDF name (upto  case  and  a  ".pfa",
697 ".pfb", or ".ttf" extension), there is no need to enter that font in the
698 fontmap.
701 PDF specifications require that the following 14 fonts are available:
703   Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
704   Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
705   Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
706   Symbol, ZapfDingbats
709   - If you have those Type1 fonts,  with  filenames  matching  the  font
710 names, you don't need a fontmap.
711   - If  you  have  the  Ghostscript  replacements,   either   from   the
712 Ghostscript  distribution,  or from the Apdf_fonts.lha archive, the main
713 Apdf archive contains  a  config  file  that  already  has  the  correct
714 fontmap.  The installer script should have installed that config file as
715 the default one.
716   - Otherwise, you have to  enter  a  fontmap  for  those  14  fonts  by
717 yourself.
719 There are two fontmaps:  the global one in the @{"General Settings" link glbsettings} window,
720 and a document specific one, in the @{"Document Settings" link docsettings} window.
723 See @{"Fonts" link fonts} for details.
725 @endnode
728 @node glbprf_advanced "Advanced Settings"
730 This page lets you adjust the following settings:
732 * Modules directory.
734   This is the directory where modules are searched. For Apdf, changes to
735 this setting are not applied until the program is quitted and restarted.
736 For the Voyager plugin, they are applied immediately only if  no  module
737 has  been  loaded  yet  (indicated  on  the  "About"  page of the plugin
738 preference  object).   Defaults   to   PROGDIR:   for   Apdf,   and   to
739 PROGDIR:Plugins for the Voyager plugin.
741 * Module.
743   This is the module used by Apdf to decode PDF files. Usually Apdf uses
744 the  one  in  the  modules  directory  that is the "best match" for your
745 hardware. You can use this setting to override this choice.  Changes  to
746 this  setting  are  applied  as  with  the  "Modules  dir" parameter. Be
747 careful: setting this parameter to an invalid filename will  cause  Apdf
748 to  refuse  to  start.  You'll  have to explicitely use the CLI "MODULE"
749 argument to override this setting, to be able to start Apdf and  make  a
750 correction. The plugin doesn't have this problem.
752 * DiskObject. (Apdf only)
754   This is the name of the icon used when Apdf is iconified, without  the
755 ".info"  suffix.  Changes to this setting are not applied to the current
756 session. Quit & restart. Defaults to "PROGDIR:Apdf".
758 * Max colors per picture.
760   This is the maximum number of colors that Apdf should try to  allocate
761 when  remapping  inline  images. Note that this does not limit the total
762 number of colors that Apdf allocates to show a  page.  First  because  a
763 page  can  contain  several  inline  pictures, and second because colors
764 allocated to draw text, draw lines, fill polygons, or for  anti-aliasing
765 are  not  concerned.  This parameter is ignored in HiColor and TrueColor
766 modes. Defaults to 16.
768 * Cache size & cache block size.
770   Control cache parameters. Setting the "Cache size"  slider  completely
771 on the right ("Load all" position) means: completely load documents into
772 memory. See @{"Cache" link cache} for details.
774 * Make BitMap.
776   After building a page image in fast RAM, build a Cybergraphics  BitMap
777 from  it.  This  allows  the  graphic  card's  blitter  to  be  used for
778 subsequent rendering of this page (and  thus,  e.g.  faster  scrolling),
779 *if*  there  is  enough  free  graphic  memory. Keep in mind that such a
780 bitmap can be *big*, and that this option only wastes time if it doesn't
781 fit  in  the card's memory together with the screen bitmap. If in doubt,
782 leave this gadget unchecked.
784 * Spare memory.
786   Don't use more than 3 bytes per pixel for internal representation of a
787 page  image,  even if the screen's native format uses 4 bytes per pixel.
788 This is slower, but requires less memory. If you really  want  to  spare
789 memory,  you  should  consider using a 15/16 bits screen mode instead (2
790 bytes per pixel).
792 * Update delay.
794   Delay between two  graphic  updates  in  "Progressive"  display  mode.
795 Refreshing the display takes time, so setting this too low increases the
796 overall time needed to fully  display  the  page.  On  the  other  hand,
797 setting  it  too high will make you wait more before anything appears on
798 the page.
800 @endnode
803 @node docsettings "Document Settings Window"
805 The document settings window let you configure  some  document  specific
806 parameters.  Those  settings  are  saved  as tooltypes in the document's
807 icon.
809 This window is organized as a register containing two pages:
811     @{" General " link docprf_general}
812     @{" Font map " link fontmap}
814 Below are two buttons:
816 "Save"   - save the settings in the document icon.
817 "Use"    - make the new settings active.
819 @endnode
822 @node docprf_general "General document settings"
824 This page lets you adjust the following settings, with the tooltype used
825 to save them:
827 * Page (PAGE=p).
829   The page at which the document should be opened by default.
831 * Zoom (ZOOM=z, z=-5,...,5, FITPAGE, or FITWIDTH).
833   The zoom factor to use by default for this document.
835 * Rotate (ROTATE=r, r=0, 90, 180, or 270).
837   The rotation parameter to use by default for this document.
839 * Anti-aliasing (ANTIALIASING=flags, flags among TEXT, FILL, and STROKE,
840 separated by "|").
842   The  three  checkboxes  reflects  the  state  that  should  have   the
843 anti-aliasing parameters when opening this document.
845 * Crop box (MARGINS=left/top/right/bottom).
847   The margins to use when opening this document. You probably don't want
848 to  set  numeric values directly, here. Instead, set the crop box in one
849 of the views of this document, and drag-drop the "Grab" button  in  that
850 view.
853 Note that those settings only have effect when a document is loaded,  so
854 the "Use" button is useless for this page.
856 @endnode
859 @node scanfonts "Fonts window"
861 This window lets you view the list of fonts used by  a  document,  or  a
862 part of it, and their properties. This helps configuring fontmaps.
864 Select a page range with the two sliders at the bottom  of  the  window,
865 and  press  the "Scan" button. The list of fonts used in this page range
866 will be added to the list.
868 The columns of the list contains the following informations:
870  - PDF font: the name of the PDF font. This is the  name  to  use  in  a
871 fontmap to associate a file to this font.
873  - Type: the type of this font (Type0, Type1, Type1C,  Type3,  TrueType,
874 or unknown). Apdf can't handle Type0 fonts.
876  - Emb: checked if the font is embedded in  the  document.  You  usually
877 don't  want to use fontmaps to substitute an external font when the font
878 is embedded, unless it is of type Type0.
880  - Properties: various properties of the font (serif, italic,  ...).  It
881 is  usually  better  to substitute a font with matching properties. Note
882 that lots of documents don't contain the correct properties for  the  14
883 base  fonts  (see @{"Fonts" link fonts}), and this is allowed by the PDF specifications.
884 Some documents also don't include valid descriptions for  the  Arial  or
885 TimesNewRoman fonts, or for embedded fonts, and this is not correct.
887 Dropping an entry of this listview into a fontmap listview  will  add  a
888 new entry with the "PDF font" field set.
890 @endnode
893 @node mui "MUI"
895 Apdf using @{"MUI" link "Readme.mui/Main"}, it supports all features  common  to  MUI  applications,
896 such   as   configuration,  screen  handling,  iconification,  commodity
897 interface, arexx... See MUI documentation for details.
899 @endnode
902 @node morphos "MorphOS"
904 MorphOS is  an  operating  system  for  PowerPC  boards,  containing  an
905 AmigaOS(tm)  emulation  box. It allows running system-friendly Amiga 68k
906 programs, together with native PowerPC programs, in an  AmigaOS(tm)-like
907 environment. It allows mixing 68k and PPC code without the slowdowns due
908 to context-switches that both PowerUp and WarpUp have.
910 When run under MorphOS, Apdf is a fully PowerPC  native  program  (while
911 the  user  interface  is  68k  code  with  PowerUp/WarpUp).  For optimal
912 performances, also install the PowerPC version of MUI for MorphOS.
914 See http://www.morphos.de for more details.
916 @endnode
919 @node faq "Questions and answers"
922 Q: I only get black and white pictures. Where are the colors ?
924 A: You are using a colormapped screen mode (i.e. 8 bits or less). These
925 modes are only supported using gray levels in Apdf 3.1, as the new
926 graphic engine is oriented toward Hi/TrueColor modes. Proper support
927 for those modes may or may not be restored later, don't hold your
928 breath. And please *don't* mail me to complain about that.
931 Q: Where is the decryption module ?
933 A: You don't need one anymore.
936 Q: Apdf only shows blank pages. What's the problem ?
938 A: The font directories or the fontmap are not correctly configured. Use
939 the test.pdf document to check that. See @{"Fonts" link fonts}.
942 Q: I use the  PPC  version  on  my  CSPPC  604e/233,  and  Apdf  crashes
943 randomly. What's the problem ?
945 A: You may be suffering of the "LR bug", which seems to be a consequence
946 of  overheating.  Check  hard/misc/CSPPC233Fix.lha  on  Aminet.  If that
947 doesn't solve your problem, please report it.
950 Q: The 'Back' and 'Forward' buttons don't work.
952 A: Yes, they do. They are for @{b}history@{ub} navigation, not to go  to
953 the  previous/next  page. Click in the page number slider, left or right
954 of the knob for that.
957 Q: Can you add direct printing support ?
959 A: Maybe later. You should  really  use  Ghostscript  for  printing  PDF
960 documents  anyway.  If  I  add this feature, it will not give results as
961 good as what Ghostscript does, because the graphic engine of Apdf is too
962 limited  to  handle  resolutions  as  high as what typical printers have
963 nowadays, and I have no intention to rewrite this engine.
966 Q: Can you add a 'saving as iff' feature ?
968 A: Maybe later. Ghostscript can save to various image formats too.
971 Q: The 'save as jpeg' feature doesn't work.
973 A: Yes it does.  It  isn't  meant to  save the whole page, only embedded
974 images.
977 Q: How can I make Apdf as fast as possible ?
979 A: - avoid color mapped graphic modes (depth <= 8). The best  choice  is
980 probably  to  use 15 or 16 bits modes. 24 or 32 bits modes are fast too,
981 but use more memory.
982    - Set the @{"Advanced settings/Cache size" link glbprf_advanced} gadget on "Load all".
983 Don't expect miracles from 68k processors though. While 68040/68060  can
984 handle  text-only  pages quite fast, they will be slow on pages with big
985 embedded pictures. A PowerPC processor is a big win here.
987 @endnode
990 @node prob "Known problems"
992 Known bugs (hopefully harmless):
994 - When stroke anti-aliasing is on, sometimes the space between two lines
995 is filled when it should not.
997 - When a path is used for clipping and stroked, some edges may disappear
998 (especially horizontal edges).
1001 Not really bugs, but non-optimal behaviour:
1003 - Patterns are not implemented for thick or anti-aliased lines yet.
1005 @endnode
1008 @node legal "Legal informations"
1010 The PDF data structures, operators, and specification are copyright 1995
1011 Adobe Systems Inc.
1013 Xpdf is © 1996-2005 by Glyph & Cog, LLC.
1014 See http://www.foolabs.com/xpdf/
1016 Amiga specific parts of Apdf are © 1999-2005 by Emmanuel Lesueur.
1018 Apdf uses @{"MUI" link "Readme.mui/Main"}. MUI is © 1992-2005 by Stefan Stuntz.
1020 Apdf uses some parts of  the  release  2.1.2  of  the  FreeType  project
1021 (© 1996-2002 by David Turner, Robert Wilhelm, and Werner Lemberg). See
1022 http://www.freetype.org
1024 The font embedded in the Test.pdf document is "Utopia Medium", and is:
1025 Copyright (c) 1989 Adobe Systems Incorporated
1026 Utopia (R)
1027 Utopia is a registered trademark of Adobe Systems Incorporated
1029 Voyager 3.0 is © 1995-1999 Oliver Wagner. See http://www.vapor.com
1032 @endnode
1035 @node distribution "Distribution"
1037 Apdf is released under the @{"GNU General Public License version 2" link "Copying/Main"}.
1039 The fonts from  the  Apdf_fonts.lha  come  from  Ghostscript,  and  have
1040 different   distribution   conditions:   they  are  released  under  the
1041 @{"Aladdin Free Public License" link "fonts/PUBLIC/Main"}.
1043 @endnode
1046 @node source "Source"
1048 The  source  code  for  Apdf  can   be   found   on   Aminet,   in   the
1049 gfx/show/Apdf_src.lha archive. You need a fairly complete GeekGadget
1050 environment to recompile Apdf.
1052 @endnode
1055 @node support "Support"
1057 Send bug reports to lesueur@club-internet.fr.
1059 Please make sure that you have read the @{"Questions and answers" link faq} and
1060 the @{"Known problems" link prob} sections, first.
1062 Apdf now has a support page at
1064         http://elesueur.free.fr/Apdf/
1066 This page will be updated to contain the list of reported bugs, possible
1067 workarounds (if any), and possibly beta releases. The main releases will
1068 still be uploaded to Aminet, though.
1071 The WWW address for the original Xpdf is
1073         http://www.foolabs.com/xpdf/
1076 @{b}Important:@{ub}
1078 Before reporting that the plugin does not work, make sure that you have
1079 read @{"this" link introduction}.
1081 @endnode
1084 @node future "Future"
1086 The following things are currently planed:
1088     - fix the known bugs.
1089     - enhance the anti-aliasing, to avoid thick gray horizontal or
1090 vertical lines instead of thin black lines.
1091     - article threads.
1092     - color separation.
1093     - add a 'save as iff' option.
1096 Some things that would be nice to implement, but are not currently on my
1097 "To do" list:
1099     - thumbnails.
1100     - sound and movie annotations.
1101     - Javascript.
1102     - a PDF datatype.
1103     - printing directly from Apdf, without the need for Ghostscript.
1105 @endnode
1108 @node thanks "Thanks"
1110 Many thanks to all the people who made the freely available software  on
1111 which Apdf is based (see @{" Legal informations " link legal}):
1113 - Derek Noonburg, for Xpdf.
1115 - David Turner,  Robert Wilhelm,  and Werner Lemberg  for  the  FreeType
1116 project.
1119 The test.pdf document was generated with the  help  of  FastIO  Systems'
1120 ClibPDF library (http://www.fastio.com).
1122 Thanks to Oliver Wagner and David Gerber for V³ and their help with  the
1123 plugin.
1125 Thanks to Luca Longone for the icons.
1127 Thanks to the @{" ATO " link "ATO.readme/Main"} for the catalog translations.
1129 @endnode
1132 @node history "History"
1135  - Incorporated xpdf-3.01 changes.
1136  - No longer uses ppc.library under MorphOS.
1137  - Mouse wheel support.
1138  - Option to put outlines in the main window.
1139  - Option to automatically display the outlines.
1142  - Small fixes.
1145  - Incorporated xpdf-3.00 changes, so that Apdf now supports PDF 1.5.
1146  - Support for negative page numbers.
1147  - gzip is no longer needed.
1148  - Support for encryption is now builtin.
1149  - Support for dash patterns on thick lines.
1152  - Incorporated xpdf-2.00 changes.
1153  - Switched to the freetype 2 to handle fonts (type1, truetype, etc.).
1154  - Now uses the freetype rasterizer instead of the T1lib one.
1155  - Rewrote the graphics engine. Now all text and vector graphics use
1156    real anti-aliasing, taking the actual background into account, which
1157    gives much better picture quality.
1158    Down side: 8 bits (or lower) modes are currently only supported through
1159    gray levels. This may or may not change, don't write to me about that.
1160  - Added the ability to view several pages at once.
1161  - Added a 'continuous' mode.
1162  - Added a 'full screen' mode.
1163  - Added support for reading (some) annotations.
1164  - Added (incomplete) support for PDF forms.
1165  - Added some progressive display modes.
1166  - Made the PDF decoding asynchronous, so that most actions can be
1167    performed without waiting for the display be completed.
1168  - Added support for rotated pictures.
1169  - Added support to take advantage of linearized files.
1170  - Added support for password protected files (untested).
1171  - Added options to hide the gadgets at the bottom of the window.
1172  - MorphOS version.
1173  - Added direct support for all cybergraphics pixel formats (this
1174    means in particular that 15/16 bits modes are handled faster, and
1175    use much less memory).
1176  - Added an option to save/print only even or odd pages.
1177  - Improved TrueType fonts encoding handling.
1178  - Added a simple bookmark system: shift-Fn marks the current page, Fn
1179    goes back to it.
1180  - Asynchrounous I/O.
1181  - Added an update mode to the installer script & fixed a bug.
1182  - Added a PUBSCREEN tooltype/argument.
1183  - The installer script can now recognize and configure fonts from the
1184    Windows distribution of AcrobatReader 3, 4, and 5.
1185  - Lots of other minor changes/bugfixes.
1188  - Removed "fit page" as the plugin default zoom mode. It
1189    can be set in the prefs window.
1190  - Fixed several PS conversion problem.
1191  - Fixed a nasty crash with AGA and big bitmaps.
1192  - Removed the borders around the lens.
1194 2.1 (internal release)
1195  - Fixed some localization bugs.
1196  - Fixed a problem with non standard date formats.
1197  - Added a "Print" entry in the plugin context menu.
1198  - Fixed a problem with PS conversion.
1199  - Removed the virtual group in "fit page" zoom mode.
1200  - Fixed miter join style.
1201  - Enhanced the installer script.
1202  - Enabled keyboard control of the outlines list.
1203  - Fixed a problem with AGA support.
1204  - Fixed a bug in the info window.
1206 2.0 (internal release)
1207  - Based on xpdf-0.90, which has basic support for PDF 1.3
1208  - Graphic engine completely rewritten:
1209    * internal support for Type1, Type3, and TrueType fonts,
1210    * support for embeded Type1, Type1C, and TrueType fonts.
1211    * anti-aliased fonts and graphics.
1212    * support for all text rendering modes (i.e. outlining and
1213      using text as clipping path).
1214    * support for font rotation.
1215    * faster, especially on PowerPC processors.
1216    * no longer uses any chip RAM.
1217    * Amiga fonts no longer supported.
1218    * Removed the use of PortLists functions. The PPC version
1219      should work with the ppclib emulation for WarpUp now.
1220  - GUI code completely reorganised, which allows:
1221    * ability to view as many pages of the same document as
1222      permitted by available memory.
1223    * ability to view as many documents as permitted by
1224      available memory.
1225  - Added a Voyager plugin.
1226  - Added a history of viewed pages.
1227  - Added two zoom modes ("fit page" and "fit width").
1228  - Support for document outlines.
1229  - Added a window showing basic informations about a document.
1230  - Added a "crop" function to suppress unused margins.
1231  - Added page rotation functions.
1232  - Speeded up the inline pictures rendering.
1233  - Fixed a stupid bug in color quantization code, which made it
1234    much slower than it should have been.
1235  - File paths translation, which should improve the handling
1236    of inter-documents links.
1237  - Implemented a custom memory manager (faster).
1238  - Added magnification.
1239  - Added a configure script to make recompilation easier.
1240  - Added a preferences editor, and replaced the tooltypes-based
1241    configuration by a config file.
1242  - Added an 'OPEN' ARexx command.
1243  - Added context dependent help.
1244  - Isolated encryption stuff in an external module.
1245  - Isolated LZW decompression in an external module.
1246  - Added support for page labels.
1247  - Error messages now go into a log window.
1248  - Localization.
1252  - Fixed bug: Apdf used to scan one page more than it should in
1253    the fontmap/scan function. Could lead to crash/enforcer hits
1254    if the last page of the document was included in the scan range.
1255  - Fixed bug: Apdf put the internal defaults in the default fontmap,
1256    overriding the user defaults.
1257  - Now calls GetDiskObjectNew to get the default icon for a document
1258    that has none, when the icon specified by the DEFICON parameter
1259    does not exist.
1260  - Added a menu item shortcut for iconification.
1261  - Fixed a bug in the gzip patch.
1262  - Increased the update rate of the progress gauges.
1263  - Added CPU informations in the "About" requester.
1264  - Now checks that it is run on the correct CPU (may still crash
1265    on 68000 or 68010, though).
1266  - Worked around a bug in the Workbench "default tool" code.
1267  - Fixed the DEFICON default value.
1269 1.2 (some parts of the preceding release were incorectly marked 1.1,
1270      so this release is 1.2 to avoid confusion)
1271  - Added a 68020/68030 archive, since the 68060 one doesn't work
1272    on those processors.
1273  - Added a basic cache system. Improves the speed a lot !
1274  - Starting Apdf with no argument now opens a requester.
1275  - Added support for documents with variable page size.
1276  - Added support for rotated pages.
1277  - Added progress bar and abort to the "search", "save", and "scan"
1278    functions.
1279  - URLCMD now defaults to "OpenURL %s".
1280  - Added Up/Down MUI shortcuts.
1281  - Added AppWindow support.
1282  - Added the DISKOBJECT argument.
1283  - Page changes scroll back to the top of the page.
1284  - Fontmap scans no longer add several times the same entry.
1285  - The scan window now opens with sliders preset to the current page.
1286  - Added a "Print" menu, equivalent to "Save as" PRT: in postscript
1287    mode. @{b}Attn: this will only work if you have a Postscript printer
1288    or a printer driver that can interpret Postscript.@{ub}
1289  - The PPC task is no longer started at priority -1.
1291 1.0-1.1
1292  - First release.
1294 @endnode