home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Corel / Ventura8 / Ventura / Scripts / ClipArtManual.csc < prev    next >
Text File  |  1998-02-20  |  8KB  |  187 lines

  1. REM TEACHING SCRIPT - Multi picture importer [CorelSCRIPT 8]
  2. REM ClipArtManual.csc  February 5, 1998
  3. REM ⌐ 1998 Corel Corporation. All rights reserved.
  4.  
  5. REM **********************************************************************
  6. REM  This script automates the tedious process of importing a large number of
  7. REM  graphics into a Ventura publication. To customize the number of frames that
  8. REM  appear on a page, simply edit the predefined GLOBAL CONST variables that
  9. REM  follow this comment.
  10. REM ***********************************************************************
  11.  
  12. ' Using these constants will produce 16 frames per page; to print 12, change 
  13. ' FRAME_WIDTH to 2.0, and COLUMNS_PER_PAGE to 3
  14. GLOBAL CONST ROWS_PER_PAGE& = 4        
  15. GLOBAL CONST COLUMNS_PER_PAGE& = 4
  16. GLOBAL CONST FRAME_WIDTH! = 1.5                'Width of Frame in inches
  17. GLOBAL CONST FRAME_HEIGHT! = 1.8                'Height of Frame in inches
  18.  
  19. ' This section declares the file types to print, and where they are located
  20. GLOBAL CONST FILE_TYPE$ = "bmp"                ' 2 or 3 letter extension of the file type to embed
  21. GLOBAL CONST DEFAULT_DIRECTORY$ = "C:\Win95\"    ' Ensure Directory ends in a backslash character
  22. GLOBAL CONST HIDE_PICTURES&  = TRUE            ' Hiding the pictures makes the script run faster
  23.  
  24. ' This section lets the system know what subroutines we will be calling
  25. DECLARE SUB CreateFrame(FileName$, FrameIndex&, Directory$)
  26. DECLARE SUB CreateNewPage
  27. DECLARE SUB Initialize
  28. DECLARE SUB CreateCaptionTag
  29. DECLARE FUNCTION FilterTypeFromExtension&(FileType$)
  30.  
  31. ' This section defines some values that will be used further down into the script
  32. GLOBAL CONST OBJECT_VENTURA$ = "CorelVentura.Automation.8"    ' For ease of porting to VP8
  33. GLOBAL CONST COLUMN_OFFSET! = 0.3                ' Space between columns, in inches
  34. GLOBAL CONST ROW_OFFSET! = 0.2                ' Space between rows, in inches
  35. GLOBAL CONST COLUMN_START! = 1.0                ' Margin to left of 1st column, in inches
  36. GLOBAL CONST ROW_START! = 1.0                    ' Margin above the 1st row, in inches
  37.  
  38. 'This section defines some values specifying the type of file to be used [used by FINDFIRSTFOLDER() function]
  39. #DEFINE FILEATTR_READ_ONLY     1                ' Specifies Read-only files
  40. #DEFINE FILEATTR_HIDDEN        2                ' Specifies Hidden files
  41. #DEFINE FILEATTR_SYSTEM        4                ' Specifies System files
  42. #DEFINE FILEATTR_ARCHIVE       32                ' Specifies Archive files
  43. #DEFINE FILEATTR_NORMAL_FILE   128                ' Specifies Normal files
  44.  
  45.  
  46. '//// MAIN //////////////////////////////////////////////////////////////////
  47. FilterType& = FilterTypeFromExtension(FILE_TYPE$)         ' Set the filter type based upon the users choice above
  48. SourceDir$ = GETFOLDER(DEFAULT_DIRECTORY$)                ' Query the user for the folder to use...
  49.  
  50. IF SourceDir$ <> "" THEN 
  51.     SourceDir$ = SourceDir$ & "\"                     ' Make SourceDir end with a backslash
  52.     Initialize                                    ' Initialize Ventura settings
  53.  
  54.     File$ = FINDFIRSTFOLDER(SourceDir$ & "*." & FILE_TYPE$, FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE)
  55.     DO WHILE File$ <> ""
  56.         FrameIndex& = FrameIndex&+1
  57.         CreateFrame File$, FrameIndex&, SourceDir$
  58.         IF FrameIndex = (ROWS_PER_PAGE& * COLUMNS_PER_PAGE&) THEN 
  59.             ' This page is full, we need to create a new page...
  60.             FrameIndex& = 0
  61.             CreateNewPage
  62.         ENDIF
  63.         File$ = FINDNEXTFOLDER()
  64.     LOOP 
  65. ENDIF
  66.  
  67.  
  68. ' **************************************************************************************
  69. ' CreateFrame
  70. ' This subroutine creates the frames for the imported clipart pictures.
  71. '
  72. ' PARAMS: FileName$ - the name of the clipart file to import.
  73. '         FrameIndex& -  indicates current frame being drawn.
  74. '         Directory$ - the name of the directory where the clipart resides
  75. ' **************************************************************************************
  76. SUB CreateFrame(FileName$, FrameIndex&, Directory$)
  77. ON ERROR GOTO ErrorHandler
  78. CaptionHeight! = FRAME_HEIGHT! * .2
  79. FrameColSpacing! = FRAME_WIDTH + COLUMN_OFFSET
  80. FrameRowSpacing! = FRAME_HEIGHT! + ROW_OFFSET + CaptionHeight!
  81.  
  82.     WITHOBJECT OBJECT_VENTURA
  83.         ' Now place each file in a frame...
  84.         Row% = FIX((FrameIndex&-1)/COLUMNS_PER_PAGE)
  85.         Col% = FIX((FrameIndex&-1) MOD COLUMNS_PER_PAGE) 
  86.         leftedge# = (FROMINCHES(COLUMN_START + (Col% * FrameColSpacing!)))
  87.         topedge# = (FROMINCHES(ROW_START + (Row% * FrameRowSpacing!))) 
  88.         .FormatCreateFrame leftedge#, topedge#, FROMINCHES(FRAME_WIDTH),FROMINCHES(FRAME_HEIGHT)
  89.         .FormatFrameMarginsInside 0, 0, 0, 0
  90.         .FormatFrameMarginsOutside 0, 0, 0, 0
  91.         .FormatFrameGeneral .CaptionType=2, .FrameFlow = 2
  92.         .FileImportPicture Directory$ & FileName$, FilterType, FALSE, TRUE
  93.         .FormatFramePicture .FitInFrame=TRUE, .MaintainAspect=TRUE
  94.         .FrameFirst FALSE, .FrameCount()
  95.         .FormatFrameGeneral , , FROMINCHES(FRAME_WIDTH),FROMINCHES(CaptionHeight!)
  96.         .FormatFrameMarginsInside 0, 0, 0, 0
  97.         .FormatFrameMarginsOutside 0, 0, 0, 0
  98.         .FrameFirstLine
  99.         .FormatSetParaTag "caption"
  100.         .TypeText LEFT(FileName$, INSTR(FileName$, ".")-1)
  101.     END WITHOBJECT
  102. ErrorHandler:
  103. END SUB
  104.  
  105.  
  106. ' **************************************************************************************
  107. ' Initialize
  108. ' This subroutine initializes Ventura, opens a new file and creates any required
  109. ' paragraph tags
  110. ' **************************************************************************************
  111. SUB Initialize
  112.     WITHOBJECT OBJECT_VENTURA
  113.         .SetVisible TRUE
  114.         .FileNew
  115.         .ViewPageFooter FALSE
  116.         .ViewPageHeader FALSE
  117.         .ViewFrameBorders TRUE
  118.         .ViewHideAllGraphics HIDE_PICTURES
  119.         .ViewZoom 50
  120.     END WITHOBJECT    
  121.     CreateCaptionTag
  122. END SUB
  123.  
  124.  
  125. ' **************************************************************************************
  126. ' CreateCaptionTag
  127. ' This subroutine creates a tag for the caption
  128. ' **************************************************************************************
  129. SUB CreateCaptionTag
  130.     WITHOBJECT OBJECT_VENTURA
  131.         .PageFirstLine             ' Must move onto the page to be able to create the new tag
  132.         .ParaTagAddNew "caption"        ' Create "caption", and give it the desired attributes
  133.         .FormatParaTagBegin "caption"
  134.         .FormatParaAlignment  1, 0, FALSE, 0, 0, 0, 0, 1, 0, FALSE, FROMINCHES(3.0), 46, 0
  135.         .FormatParaBreaks  0, 0, 1, FALSE, TRUE, FALSE, FALSE
  136.         .FormatParaColor FALSE, 2, 0, 0, 0, 100, FALSE, FALSE
  137.         .FormatParaDefaults TRUE, 1, , FROMPOINTS(56), FROMPOINTS(9.56), FROMPOINTS(56), FROMPOINTS(3.0), FROMPOINTS(56), FROMPOINTS(56), FROMPOINTS(56), FROMPOINTS(1.69), 8, FROMPOINTS(4.7), 8, FROMPOINTS(1.10)
  138.         .FormatParaEffects  0
  139.         .FormatParaFont "Times New Roman", 7, 400, FALSE, 0, FALSE, FALSE, FALSE
  140.         .FormatParaHyphenation FALSE, "US English", 2, 5, 2, 2, TRUE, TRUE, FALSE
  141.         .FormatParaSpacing  0, 0, FROMPOINTS(6.0), 0, 1, FALSE, FALSE, FALSE, 0, FROMPOINTS(144)
  142.         .FormatParaTypography  1000, 600, 2000, FALSE, 0, FROMPOINTS(13.97), FROMPOINTS(13.97), 0, FALSE
  143.         .FormatParaTagEnd
  144.     END WITHOBJECT    
  145. END SUB
  146.  
  147.  
  148. ' **************************************************************************************
  149. ' CreateNewPage
  150. ' This subroutine inserts a new page and makes the new page the active page.
  151. ' **************************************************************************************
  152. SUB CreateNewPage
  153.     WITHOBJECT OBJECT_VENTURA
  154.         CurrentPage& = .CurrentPageNumber()
  155.         .PageInsertPages , 1        'insert a new page
  156.         .ViewGoToPage CurrentPage&+1 
  157.     END WITHOBJECT    
  158. END SUB
  159.  
  160.  
  161. ' **************************************************************************************
  162. ' FilterTypeFromExtension
  163. ' This subroutine returns a filter type based upon the extension
  164. ' This is a handy general-purpose function that you may want to re-use
  165. ' Other FILTER_TYPE ids can be found by looking in the help file under
  166. ' the FileImportPicture automation command.
  167. ' **************************************************************************************
  168. FUNCTION FilterTypeFromExtension&(FileType$)
  169.     SELECT CASE LCASE(FileType$)
  170.         CASE "bmp"
  171.             FILTER_TYPE& = 1
  172.         CASE "cmx"
  173.             FILTER_TYPE& = 102
  174.         CASE "gif"
  175.             FILTER_TYPE& = 5
  176.         CASE "jpg"
  177.             FILTER_TYPE& = 6
  178.         CASE "pcd"
  179.             FILTER_TYPE& = 7
  180.         CASE "eps"
  181.             FILTER_TYPE& = 40
  182.         CASE "ai"
  183.             FILTER_TYPE& = 34
  184.     END SELECT
  185. END FUNCTION
  186.  
  187.