Update font family in FormattedString
-
I'm hoping to use make an instance of a
FormattedString()
, set its font size and content, then make multiple pages in which only the font is changed. Ulimately, I'm trying to make a type proof in as simple a way as possible.The code below shows my current attempt. I would expect page 1 to have Helvetica, and page 2 to have Times New Roman. However, both have Helvetica. What am I missing?
import datetime timestamp = datetime.datetime.now().strftime("%Y.%m.%d – %H:%M") W, H = 792, 612 font("Courier") # caption font fontSize = 12 # caption font size padding = 40 lower = "\ nnannooaoo nnbnnooboo nncnnoocoo nndnnoodoo nnennooeoo nnfnnoofoo\n\ nngnnoogoo nnhnnoohoo nninnooioo nnjnnoojoo nnknnookoo nnlnnooloo\n\ nnmnnoomoo nnpnnoopoo nnqnnooqoo nnrnnooroo nnsnnoosoo nntnnootoo\n\ nnunnoouoo nnvnnoovoo nnwnnoowoo nnxnnooxoo nnynnooyoo nnznnoozoo\n\ \n" upper = "\ HHAHHOOAOO HHBHHOOBOO HHCHHOOCOO HHDHHOODOO HHEHHOOEOO HHFHHOOFOO\n\ HHGHHOOGOO HHIHHOOIOO HHJHHOOJOO HHKHHOOKOO HHLHHOOLOO HHMHHOOMOO\n\ HHNHHOONOO HHPHHOOPOO HHQHHOOQOO HHRHHOOROO HHSHHOOSOO HHTHHOOTOO\n\ HHUHHOOUOO HHVHHOOVOO HHWHHOOWOO HHXHHOOXOO HHYHHOOYOO HHZHHOOZOO\n\ \n" nums = "\ 0080088088 0010088188 0020088288 0030088388 0040088488\n\ 0050088588 0060088688 0070088788 0090088988\n" # ---------------------------------------- # Setup proof content -------------------- txt = FormattedString() txt.fontSize(18) txt += lower txt += upper txt.openTypeFeatures(ss01=True) txt += lower txt += nums # ---------------------------------------- # First Page ----------------------------- newPage('LetterLandscape') txt.font("Helvetica") text(txt, (padding, H-padding)) text("Helvetica – " + timestamp, padding, padding) # ---------------------------------------- # Next Page ------------------------------ newPage('LetterLandscape') txt.font("Times New Roman") text(txt, (padding, H-padding)) text("Times New Roman – " + timestamp, padding, padding) # ---------------------------------------- # Save ----------------------------------- print("saving") path = "/Users/stephennixon/type-repos/recursive/src/proofs/drawbot-basic-proof/exports/temp.pdf" saveImage(path)
-
Setting a font in a formatted string will only be used for text appended afterwards:
txt.font(...)
will not alter the font attribute for existing texts in the formatted string.For each page you will need to create a fresh formatted string.