Ok, I'm still not sure how that would work, but I figured out the problem! I
forgot that skew would affect the whole page, not just the line, so I was
entering an italicization factor based on x=0,y=0, but when writing some
text way up at y=304, for instance, my skew was much greater than I
expected. So, I solved it by this:

   float italicization = .15F + (1F / xLeading);
   Matrix m = new Matrix(1F, 0F, italicization, 1F, 0F, 0F);
   cb.Transform(m);     
   cb.ShowTextAligned(iAlign, Content[i].Trim(), x - (y * italicization), y,
xRotate);
   m = new Matrix(1F, 0F, 0F - italicization, 1F, 0F, 0F);
   cb.Transform(m);

Not 100%, but looks pretty good.
Thanks again.



Paulo Soares-3 wrote:
> 
> If you want to do all by yourself look at the code that I pointed to, all
> the transformations are there. If you want to let iText do the work for
> you use ColumnText.ShowTextAligned(), it supports PdfContentByte, and use
> a Font with a Font.ITALIC style, and the slanting will be done for free.
> 
> Paulo
> 
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On
>> Behalf Of irashkin
>> Sent: Wednesday, September 17, 2008 4:32 PM
>> To: [email protected]
>> Subject: Re: [iText-questions] pseudo-italic (transform)
>> causing horizontal offset
>>
>>
>> I also need PDFContentByte writing because I have to have absolute
>> positioning for every element.
>>
>> irashkin wrote:
>> >
>> > Thanks for the quick reply! I didn't think I was able to
>> use chunks with
>> > PDfContentByte directly. Is that true? I have to use
>> PDFContentByte (I am
>> > pretty sure anyway...) because of a bunch of other graphic
>> things I am
>> > doing.
>> >
>> >
>> >
>> > Paulo Soares-3 wrote:
>> >>
>> >> Look for Chunk.SKEW in PdfDocument.WriteLineToContent().
>> >>
>> >> Paulo
>> >>
>> >>> -----Original Message-----
>> >>> From: [EMAIL PROTECTED]
>> >>> [mailto:[EMAIL PROTECTED] On
>> >>> Behalf Of irashkin
>> >>> Sent: Wednesday, September 17, 2008 3:20 PM
>> >>> To: [email protected]
>> >>> Subject: [iText-questions] pseudo-italic (transform) causing
>> >>> horizontal offset
>> >>>
>> >>>
>> >>> Hi,
>> >>> I am actually using iTextSharp, but I don't know if this
>> >>> problem is specific
>> >>> to iTextSharp or is a general problem (or misunderstanding by
>> >>> me) of iText.
>> >>> I am working with some embedded fonts that don't have italic
>> >>> options. So, to
>> >>> get around this, I am doing a skew transformation, and the
>> >>> italicization
>> >>> looks ok. But it is offsetting the x value as well, even
>> >>> though I am passing
>> >>> 0 for x and y (e and f) values in my matrix.
>> >>> In other words, I am doing something like this:
>> >>>
>> >>> float x = 28F;
>> >>> float y = 100F;
>> >>> float italicization = xFontSize / 100F;
>> >>> Matrix m = new Matrix(1F, 0F, italicization, 1F, 0F, 0F);
>> >>> cb.Transform(m);
>> >>> cb.ShowTextAligned(0, Content[i].Trim(), x, y, 0F);
>> >>> m = new Matrix(1F, 0F, 0F-italicization, 1F, 0F, 0F);
>> >>> cb.Transform(m);
>> >>> cb.ShowTextAligned(0, Content[i].Trim(), x, y, 0F);
>> >>>
>> >>> so, first I write the string (Content[i]) in pseudo-italics,
>> >>> then transform
>> >>> back to original and write it un0-italicized for comparison.
>> >>> The offset varies, but depending (I think) on font size and
>> >>> maybe also on
>> >>> string length, the offset is by 2 to 6 characters.
>> >>>
>> >>> I have been trying many combinations of italicization values,
>> >>> offsetting x
>> >>> by variable amounts, and so on, but I can't get this to come
>> >>> out right.
>> >>> I also tried this but it does exactly the same thing.:
>> >>>
>> >>> Matrix m = new Matrix(1F, 0F, italicization, 1F, x, 0F);
>> >>> cb.Transform(m);
>> >>> cb.ShowTextAligned(iAlign, Content[i].Trim(), 0F, y, 0F);
>> >>> m = new Matrix(1F, 0F, 0F-italicization, 1F, 0F-x, 0F);
>> >>> cb.Transform(m);
>> >>> cb.ShowTextAligned(iAlign, Content[i].Trim(), x, y, 0F);
>> >>>
>> >>>
>> >>> Interstingly,m I had this working, sort of - I was just
>> doing this:
>> >>>
>> >>> cb.ConcatCTM(1F, 0F, italicization, 1F, 0F, 0F);
>> >>> cb.SaveState();
>> >>> cb.ShowTextAligned(0, Content[i].Trim(), x, y, 0F);
>> >>> cb.RestoreState();
>> >>>
>> >>> and this was giving me good results, but was then causing
>> a PDf error:
>> >>> Illegal operation 'Q' inside a text object. (this all
>> happens inside a
>> >>> beginText()-endText() block, which I guess is not ok).
>> >>>
>> >>> Does anyone have any ideas about this? I am going crazy. I
>> >>> can give you more
>> >>> info as needed - I tried to give enough, but maybe not...
>> >>>
>> >>> Thanks,
>> >>> Ian
> 
> 
> Aviso Legal:
> 
> Esta mensagem é destinada exclusivamente ao destinatário. Pode conter
> informação confidencial ou legalmente protegida. A incorrecta transmissão
> desta mensagem não significa a perca de confidencialidade. Se esta
> mensagem for recebida por engano, por favor envie-a de volta para o
> remetente e apague-a do seu sistema de imediato. É proibido a qualquer
> pessoa que não o destinatário de usar, revelar ou distribuir qualquer
> parte desta mensagem. 
> 
> 
> 
> Disclaimer:
> 
> This message is destined exclusively to the intended receiver. It may
> contain confidential or legally protected information. The incorrect
> transmission of this message does not mean the loss of its
> confidentiality. If this message is received by mistake, please send it
> back to the sender and delete it from your system immediately. It is
> forbidden to any person who is not the intended receiver to use,
> distribute or copy any part of this message.
> 
> 
> 
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> iText-questions mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
> 
> Buy the iText book: http://www.1t3xt.com/docs/book.php
> 

-- 
View this message in context: 
http://www.nabble.com/pseudo-italic-%28transform%29-causing-horizontal-offset-tp19533150p19537544.html
Sent from the iText - General mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php

Reply via email to