Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

pdf error

Help
Guldo
2005-05-24
2013-04-17
  • Guldo
    Guldo
    2005-05-24

    I'm getting this kind of error out of a pdf I wrote:
    "illegal operation inside a path"
    There's a single frame that produces this error.
    This frame is made up of some png pictures (\pgfuseimage) and some plain pgf lines. There's some text inside a couple of pgfboxes.
    By searching comp.text.pdf I've found some advices on how to correct the very pdf file; but I can't go through the source of the pdf of a presentation to search for pdf errors, you know...
    That's why I'm posting here. I'd like to find out a latex explanation.

    I first looked at the pdf using a recent version of xpdf and acrobat reader 7 (Linux); there was no problem. That error just pops up on acroread 5 and 6.
    It shows in all modes, draft too.

    Any hints?

    Thank you :)

    p.s.: Here's the source of this toublesome frame; can you see anything wrong? (sorry for its length)

    \begin{frame}[label=architettura]
      \frametitle{Architettura BO}
      \pgfdeclaremask{pcClientMask}{pcClient.mask} % il client
      \pgfdeclareimage[width=1cm,mask=pcClientMask]{pcClient}{pcClient}
      \pgfdeclaremask{webServerMask}{WebServer.mask} % il WebServer
      \pgfdeclareimage[width=1cm,mask=webServerMask]{WebServer}{WebServer}
      \pgfdeclaremask{dbMask}{DB.mask} % il DB
      \pgfdeclareimage[height=1cm,mask=dbMask]{DB}{DB}
      \pgfdeclaremask{repoMask}{Repo.mask} % il Repository
      \pgfdeclareimage[height=1cm,mask=repoMask]{Repo}{Repo}

      \begin{pgfpicture}{0cm}{0cm}{0cm}{0cm}
        % punti di riferimento (il resto  partway)
        \pgfmoveto{\pgfxy(0.5,2)}
        \pgflineto{\pgfxy(0.5,0)}
        \pgflineto{\pgfxy(4.1,0)}

        \pgfputat{\pgfpartway{.5}{\pgfxy(0.5,3.3)}{\pgfxy(4.1,3.3)}}{%
          \pgfbox[center,bottom]{\scriptsize Internet/Intranet/Extranet}%
        }

        \pgfmoveto{\pgfpartway{.33333}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}
        \pgflineto{\pgfpartway{.33333}{\pgfxy(0.5,0)}{\pgfxy(4.1,0)}}
        \pgfmoveto{\pgfpartway{.66666}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}
        \pgflineto{\pgfpartway{.66666}{\pgfxy(0.5,0)}{\pgfxy(4.1,0)}}
        \pgfmoveto{\pgfxy(4.1,2)}
        \pgflineto{\pgfxy(4.1,0)}
        \pgfmoveto{\pgfpartway{.5}{\pgfxy(0.5,0)}{\pgfxy(4.1,0)}}
        \pgflineto{\pgfpartway{.5}{\pgfxy(0.5,-.7)}{\pgfxy(4.1,-.7)}}
        \pgfstroke

        \pgfputat{\pgfpartway{0}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}{%
          \pgfbox[center,bottom]{\pgfuseimage{pcClient}}%
        }
        \pgfputat{\pgfpartway{.33333}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}{%
          \pgfbox[center,bottom]{\pgfuseimage{pcClient}}%
        }
        \pgfputat{\pgfpartway{.66666}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}{%
          \pgfbox[center,bottom]{\pgfuseimage{pcClient}}%
        }
        \pgfputat{\pgfpartway{1}{\pgfxy(0.5,2)}{\pgfxy(4.1,2)}}{%
          \pgfbox[center,bottom]{\pgfuseimage{pcClient}}%
        }

        \pgfmoveto{\pgfpartway{.5}{\pgfxy(0.5,-1.7)}{\pgfxy(4.1,-1.7)}}
        \pgflineto{\pgfpartway{.5}{\pgfxy(0.5,-2.3)}{\pgfxy(4.1,-2.3)}}
        \pgflineto{\pgfxy(8,-2.3)}
        \pgflineto{\pgfxy(8,0)}
        \pgfmoveto{\pgfpartway{.5}{%
            \pgfpartway{.5}{\pgfxy(0.5,-2.3)}{\pgfxy(4.1,-2.3)}%
          }{\pgfxy(8,-2.3)}%
        }
        \pgflineto{\pgfpartway{.5}{%
            \pgfpartway{.5}{\pgfxy(0.5,-2.5)}{\pgfxy(4.1,-2.5)}%
          }{\pgfxy(8,-2.5)}%
        }
        \pgfstroke

        % immagini e testi
        \pgfputat{\pgfxy(7,2.5)} {\pgfbox[center,center]{\pgfuseimage{pcClient}}}
        \pgfputat{\pgfxy(10.3,2)}{\pgfbox[center,center]{\pgfuseimage{pcClient}}}
        \pgfputat{\pgfxy(10.3,0)}{\pgfbox[center,center]{\pgfuseimage{pcClient}}}
        \pgfputat{\pgfxy(9,3)}   {\pgfbox[center,bottom]{\scriptsize Utenti BusinessObjects}}
        \pgfputat{\pgfxy(9,2.6)} {\pgfbox[center,bottom]{\scriptsize (Full Client)}}
        \pgfputat{\pgfxy(9.6,-.9)}   {\pgfbox[center,bottom]{\scriptsize Punto di controllo}}
        \pgfputat{\pgfxy(9.6,-1.3)} {\pgfbox[center,bottom]{%
            \scriptsize (Designer e \alert<beamer>{Supervisor})}}

        \pgfputat{\pgfxy(2.3,-.7)}{\pgfbox[center,top]{\pgfuseimage{WebServer}}}
        \pgfputat{\pgfxy(3,-1)}   {\pgfbox[left,top]{\scriptsize Web Server}}

        \pgfputat{\pgfxy(5,-2.5)}  {\pgfbox[right,top]{\pgfuseimage{DB}}}
        \pgfputat{\pgfxy(3.3,-3)}    {\pgfbox[right,center]{\scriptsize Dati aziendali}}
        \pgfputat{\pgfxy(5.3,-2.5)}{\pgfbox[left,top]{\pgfuseimage{Repo}}}
        \pgfputat{\pgfxy(6.5,-3)}  {\pgfbox[left,center]{\scriptsize Repository BO}}
        \pgfputat{\pgfxy(5.15,-3.8)} {\pgfbox[center,top]{\scriptsize Web Intelligence}}

        % ellisse
        \pgftranslateto{\pgfxy(8,1)}
        \pgfbox[center,center]{LAN}
        \pgfzeroellipse{\pgfxy(0,1)}{\pgfxy(2,0)}
        \pgfstroke

      \end{pgfpicture}
    \end{frame}

     
    • Guldo
      Guldo
      2005-05-29

      My problem was that I used to insert a \pgfputat right after a \pgflineto; this is no good, since a \pgfstroke has to be put in between, otherwise the \pgfputat is still "inside a path", as acroread 5 claims.
      After all it makes sense, to stroke a path before going on with anything else.

      bye