Print via Flash

From Directorforum Collaboration Wiki

Jump to: navigation, search

How to print with Director / Shockwave using an empty Flash sprite.

This article is a work in progress, but maybe these first steps help you to understand how to print using Flash in Director. You're very welcome to enhance and extend this article.

Contents

Example

Hit the button and print to a PDF or printer if you like.


Code

The below is a sprite behavior that has to be attached to an empty Flash movie sprite.

property pSprite
property pPrintJob
property pPrintJobStarted
property pMC
property pTextFormat
 
on beginSprite me
  pSprite = sprite(me.spriteNum)
end
 
on lbxCreatePrintJob me
  pPrintJob = pSprite.newObject("PrintJob")
  lbxCreatePrintObject()
  pPrintJobStarted = pPrintJob.start()
  if pPrintJobStarted then
    lbxAddPrintPage()
    lbxSendPrintJob()
    lbxDeletePrintJob()
  end if
end
 
on lbxSendPrintJob me
  pPrintJob.send()
end
 
on lbxDeletePrintJob me
  pPrintJobStarted = VOID
  pPrintJob = VOID
end
 
on lbxAddPrintPage me
  pPrintJob.addPage(pMC, {xMin : -300, xMax: 300, yMin: 400, yMax: 800})
end
 
on lbxCreatePrintObject me
  -- creates a MovieClip to be printed
  pMC = pSprite.createEmptyMovieClip("myMC", pSprite.getNextHighestDepth())
  -- create text field format
  lbxCreateTextFormat()
  -- add first text field
  pTextField = pMC.createTextField("my_txt", pMC.getNextHighestDepth(), 0, 0, 612, 50)
  pTextField.multiline = TRUE
  pTextField.wordWrap = TRUE
  pTextField.autoSize = "left"
  pTextField.border = FALSE
  pTextField.text = "Hello world, let's see if this will work as expected."
  pTextField.setTextFormat(pTextFormat)
  -- add second text field
  pTextField2 = pMC.createTextField("my_txt2", pMC.getNextHighestDepth(), 0, 400, 612, 50)
  pTextField2.multiline = TRUE
  pTextField2.wordWrap = TRUE
  pTextField2.autoSize = "left"
  pTextField2.border = FALSE
  pTextField2.text = "Will be fun if it works!"
  pTextField2.setTextFormat(pTextFormat)
end
 
on lbxCreateTextFormat me
  pTextFormat = pSprite.newObject("TextFormat")
  pTextFormat.font = "Consolas" -- string, font name
  pTextFormat.size = 14 -- number, text size in points
  pTextFormat.color = "0x000000" -- string with hex color value
  pTextFormat.bold = FALSE -- TRUE, FALSE
  pTextFormat.italic = FALSE -- TRUE, FALSE
  pTextFormat.underline = FALSE -- TRUE, FALSE
  pTextFormat.align = "left" -- left, right, center, justify
  pTextFormat.blockIndent = 0 -- indent of a text block in points
  pTextFormat.indent = 0 -- indent of a text paragraph in points
  pTextFormat.leftMargin = 20 -- left margin of a text paragraph in points
  pTextFormat.rightMargin = 20 -- right margin of a text paragraph in points
  pTextFormat.bullet = FALSE -- TRUE, FALSE
  pTextFormat.kerning = TRUE -- TRUE, FALSE
  pTextFormat.letterSpacing = 0 -- number of pixels to add to or subtract from horizontal distance of letters
  pTextFormat.tabStops = VOID -- Array of tab stops in pixels
  pTextFormat.url = VOID -- URL a text with this format is linked to
  pTextFormat.target = VOID -- _self, _top, _parent, _blank
  pTextFormat.leading = VOID -- vertical distance of text lines in pixels
end

Download

lbxPrintJob.zip (10KB)

Further Reading

Personal tools