ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Pablo Rodriguez <oinos@gmx.es>
To: ntg-context@ntg.nl
Subject: Re: checking whether file is landscape or portrait
Date: Tue, 28 Jan 2020 17:39:54 +0100	[thread overview]
Message-ID: <a11b1300-3c56-67f7-7276-5f7178fef5be@gmx.es> (raw)
In-Reply-To: <69FAAE50-CEBA-4409-AAEA-C16CCCFFF738@elvenkind.com>

Many thanks for your reply, Taco. It helps me a lot to manipulate the
images (which are actually PDF documents).

I have another question about an issue that I experience at work.

Some of the PDF documents I have to deal with are poorly generated.
There are misplaced A4 pages inside legal paper sizes.

I thought there were malformed in such a way:

    \showframe
    \setuppapersize[A4][legal]
    \starttext
    \dorecurse{10}{\input{zapf}}
    \stoptext

So my approach was:

    \setuplayout[page]
    \starttext
    \getfiguredimensions[a-test.pdf]
        \page[right]\dorecurse{\noffigurepages}
            {\externalfigure[a-test.pdf][page=\recurselevel]}
    \stoptext

But after a closer inspection, the docuemnts are properly malformed.
They include some top and left extra margins.

Is there any way to remote those extra margins? (Offset doesn’t seem to
work here.)

Many thanks for your help again,

Pablo


On 1/28/20 5:04 PM, Taco Hoekwater wrote:
> Hi Pablo,
>
> I have had lots of problems with getting the correct figure dimensions
> for external images. In the end, I now use the code below. It is just
> as low-level and much more inefficient than your code, but it has not
> failed me yet.
>
>   \newdimen\MYfigurewidth
>   \newdimen\MYfigureheight
>   \unexpanded\def\MYgetfiguredimensions
>     {\dodoubleempty\MYdogetfiguredimensions}
>
>   \def\MYdogetfiguredimensions[#1][#2]%
>     {\setbox0=\hbox{\externalfigure[#1][#2]}%
>      \MYfigurewidth=\wd0
>      \MYfigureheight=\ht0 }
>
> And used like:
>
>        \MYgetfiguredimensions[cow.pdf][page=1]
>        \ifdim\MYfigurewidth>\MYfigureheight
>        …
>        \fi
>
> and I only use Hans’ \getfiguredimensions when I need to know a pdf page count.
>
> It is not that Hans’ macro is bad, but external figures (especially PDF,
> but also PNGs) can be very misbehaved.
>
> Actually forcing the inclusion into a box is crude but at least it will
> always return results identical to any actual desired inclusion.
>
> Best wishes,
> Taco
>
>> On 28 Jan 2020, at 16:51, Pablo Rodriguez <oinos@gmx.es> wrote:
>>
>> Dear list,
>>
>> I have to check whether an external PDF document is portrait or
>> landscape (in order to manipulate it in different ways).
>>
>> From what I understand of grph-inc.mkiv, I came with the following sample:
>>
>>    \unprotect
>>    \def\figureXSize{\clf_figurestatus{width}{}}
>>    \def\figureYSize{\clf_figurestatus{height}{}}
>>    \protect
>>
>>    \setupexternalfigures[location=default]
>>    \starttext
>>    \getfiguredimensions[cow.pdf]
>>    \figuresize\\
>>    \figurelabel\\
>>    \figureXSize\\
>>    \figureYSize\\
>>    \ifnum\figureXSize<\figureYSize portrait\else landscape\fi
>>    \stoptext
>>
>> I feel bad of abusing the ConTeXt source in such a miserable way. But
>> I’m afraid this is the best I can.
>>
>> Is there no standard way to check portrait or landscape on a given
>> figure? A conditional for that would be useful.
>>
>> At least, I would like to know how to get image dimension numbers
>> suitable to be deployed with \ifnum.
>>
>> Many thanks for your help,
>>
>> Pablo



--
http://www.ousia.tk
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2020-01-28 16:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-28 15:51 Pablo Rodriguez
2020-01-28 16:04 ` Taco Hoekwater
2020-01-28 16:39   ` Pablo Rodriguez [this message]
2020-01-28 16:46   ` Wolfgang Schuster
2020-01-28 16:15 ` Wolfgang Schuster
2020-01-28 16:43   ` Pablo Rodriguez
2020-01-29 13:31     ` Arthur Reutenauer
2020-01-29 15:44       ` Pablo Rodriguez
2020-01-30 12:08         ` context

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a11b1300-3c56-67f7-7276-5f7178fef5be@gmx.es \
    --to=oinos@gmx.es \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).