Try this:

(PDFDocument new compression: false)add: (PDFPage new add: (PDFTextElement new 
text: 'Hello'; from: 10mm@10mm)); exportTo: 'test.pdf' asFileReference 
writeStream.

Compression causes your string to be gzip’d which is a ByteArray and not a 
String of any kind.

Unfortunately, the write stream is a ZnCharacterWriteStream which is expecting 
some kind of String.

This is going to take some untangling so just turn off compression (which is on 
by default) and it seems to work.  

> On Jan 17, 2024, at 4:43 PM, Richard O'Keefe <rao...@gmail.com> wrote:
> 
> So the method is expecting some kind of string, but it received a
> ByteArray, which is NOT any kind of string.
> What's in the ByteArray?  Where did it come from?  Why isn't it a string?
> 
> On Thu, 18 Jan 2024 at 04:34, sergio ruiz <sergio....@gmail.com> wrote:
>> 
>> Hi, all.
>> 
>> I am working on creating a PDF with Artefact 
>> (https://github.com/pharo-contributions/Artefact) and am having an issue 
>> running the first example.
>> 
>> the Example looks like:
>> 
>> PDFDocument new add: (PDFPage new add: (PDFTextElement new text: 'Hello'; 
>> from: 10mm@10mm)); exportTo: 'test.pdf' asFileReference writeStream.
>> 
>> 
>> When running this, I get the error:
>> 
>> Instance of ByteArray did not understand #isByteString
>> 
>> indeed, ByteArray does not have a method called isByteString.
>> 
>> I have tried creating a method that returns either true or false (I tried 
>> them both), but I have not successfully built the PDF.
>> 
>> The method calling isByteString looks like:
>> 
>> 
>> ZnUTF8Encoder
>> 
>> next: count putAll: string startingAt: offset toStream: stream
>> "Write count characters from string starting at offset to stream."
>> "Overwritten for performance reasons - create a fast path for byte strings"
>> 
>> string isByteString
>> ifTrue: [ self next: count putAllByteString: string startingAt: offset 
>> toStream: stream ]
>> ifFalse: [ super next: count putAll: string startingAt: offset toStream: 
>> stream ]
>> 
>> I TOTALLY get this. This is a whole bunch of very specific questions. But my 
>> ultimate goal is to take a deep dive into stream processing to figure this 
>> out.
>> 
>> Thanks!
>> 
>> ----
>> peace,
>> sergio
>> photographer, journalist, visionary
>> 
>> Public Key: 
>> https://pgp.key-server.io/pks/lookup?op=get&search=0x69B08F58923AB3A2
>> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
>> @sergio_101@mastodon.social
>> https://sergio101.com
>> http://www.codeandmusic.com
>> http://www.twitter.com/sergio_101
>> http://www.facebook.com/sergio101
>> 

Reply via email to