<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [PATCH] pdftops does not crop"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=30692#c19">Comment # 19</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [PATCH] pdftops does not crop"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=30692">bug 30692</a>
              from <span class="vcard"><a class="email" href="mailto:tsdgeos@terra.es" title="Albert Astals Cid <tsdgeos@terra.es>"> <span class="fn">Albert Astals Cid</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=30692#c18">comment #18</a>)
<span class="quote">> >I suggested that PSOutputDev::startPage generates the cropbox with the given box in the state

> I think that with the patch, the postscript clip is generated by calls in
> Gfx::Gfx() when Page::createGfx() calls new Gfx().</span >

Yes

<span class="quote">> I agree that my patch is hacky.  So I understand, you want to keep
> Gfx::Gfx() and have PSOutputDev::startPage() generate the clip line?</span >

Yes, well not startPage specifically but something in PSOutputDev and startPage
seemed like a good place with a quick look

<span class="quote">> Can startPage() use page->getCropBox() ?  That would save passing it.</span >

No, but you can use the pageBox of the state (ok, now i see that the GfxState
takes the pageBox but doesn't really store it, but i wouldn't mind it getting
stored if we need to)

<span class="quote">> 
> Gfx::Gfx() calls 
>   out->startPage(pageNum, state);
>   out->setDefaultCTM(state->getCTM());
> before calling
>   out->clip(state);
> so that the CTM is initialized before generating the clip.

> If PSOutputDev::startPage() sets up the clip, it would be generated before
> the CTM is initialized. Is that a problem?</span >

Hmmm, that might be a problem yes, it is weird that this is done in two steps
:-/

<span class="quote">> Since Page::createGfx() is generic to all output, while
> PSOutputDev::startPage() is specific to postscript, would moving the patch
> from createGfx() to startPage() mean other devices that wanted to crop to
> the cropbox would need to implement it in their own startPage()></span >

No, other devices that crop to the cropbox already work, note that the
situation you are mentioning is not cropping to the cropbox but using the
cropbox as box for your rendering (the only way for Page::makeBox to set crop
to false is when you say you don't want to use the mediabox) so effectively you
don't need to crop since your box is already the cropbox, i understand you say
that drawing outside the box when using the cropbox as box creates wrong
renderings, and i think this is a bug in the PSOutputDev and that's where I'd
prefer the fix to be located there.

This is the situation we want to fix, right?

Now another solution would be adding a virtual doINeedAClipAlways to OutputDev
and make PSOutputDev say true and hook this up in the clip calls of Gfx::Gfx</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>