2011-06-02 3 views
5

Je crée des fichiers Word DOCX avec des graphiques vectoriels incorporés. Apparemment DrawingML est maintenant le moyen préféré d'insérer des graphiques vectoriels. J'ai du mal à trouver comment découper un diagramme dans la toile de dessin. Il semble continuer à faire évoluer mes formes dans la forme du groupe.Coupure dans DrawingML

Le découpage est-il possible dans DrawingML, et si oui, est-ce que quelqu'un a un petit extrait de code ou XML pour me diriger dans la bonne direction?

+0

Pouvez-vous publier un exemple de fichier XML que vous souhaitez extraire (par exemple votre élément w: drawing)? – JasonPlutext

Répondre

2

Le recadrage dans DrawingML provient de la balise <scrRect/>. Si c'est tout sauf vide, cela signifie qu'il est recadré. Cette balise est utilisée pour tous les graphiques visuels, tels que des images, des formes, des graphiques, etc.

Prenez ces deux exemples d'un .EMF inséré dans Word:

<w:drawing> 
     <wp:inline distT="0" distB="0" distL="0" distR="0"> 
     <wp:extent cx="5934456" cy="7269480"/> 
     <wp:effectExtent l="0" t="0" r="9525" b="7620"/> 
     <wp:docPr id="1" name="Picture 1" descr="C:\Users\Todd\Pictures\Dotted_Lines.emf"/> 
     <wp:cNvGraphicFramePr> 
      <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/> 
     </wp:cNvGraphicFramePr> 
     <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> 
      <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
      <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
       <pic:nvPicPr> 
       <pic:cNvPr id="0" name="Picture 1" descr="C:\Users\Todd\Pictures\Dotted_Lines.emf"/> 
       <pic:cNvPicPr> 
        <a:picLocks noChangeAspect="1" noChangeArrowheads="1"/> 
       </pic:cNvPicPr> 
       </pic:nvPicPr> 
       <pic:blipFill> 
       <a:blip r:embed="rId5"> 
        <a:extLst> 
        <a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"> 
         <a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/> 
        </a:ext> 
        </a:extLst> 
       </a:blip> 
       <a:srcRect/> 
       <a:stretch> 
        <a:fillRect/> 
       </a:stretch> 
       </pic:blipFill> 
       <pic:spPr bwMode="auto"> 
       <a:xfrm> 
        <a:off x="0" y="0"/> 
        <a:ext cx="5934456" cy="7269480"/> 
       </a:xfrm> 
       <a:prstGeom prst="rect"> 
        <a:avLst/> 
       </a:prstGeom> 
       <a:noFill/> 
       <a:ln> 
        <a:noFill/> 
       </a:ln> 
       </pic:spPr> 
      </pic:pic> 
      </a:graphicData> 
     </a:graphic> 
     </wp:inline> 
    </w:drawing> 

et

<w:drawing> 
      <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="779C87CB" wp14:editId="4B126F88"> 
      <wp:extent cx="3390181" cy="4882551"/> 
      <wp:effectExtent l="0" t="0" r="1270" b="0"/> 
      <wp:docPr id="2" name="Picture 2" descr="C:\Users\Todd\Pictures\Dotted_Lines.emf"/> 
      <wp:cNvGraphicFramePr> 
       <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/> 
      </wp:cNvGraphicFramePr> 
      <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> 
       <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
       <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
        <pic:nvPicPr> 
        <pic:cNvPr id="0" name="Picture 1" descr="C:\Users\Todd\Pictures\Dotted_Lines.emf"/> 
        <pic:cNvPicPr> 
         <a:picLocks noChangeAspect="1" noChangeArrowheads="1"/> 
        </pic:cNvPicPr> 
        </pic:nvPicPr> 
        <pic:blipFill rotWithShape="1"> 
        <a:blip r:embed="rId5"> 
         <a:extLst> 
         <a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"> 
          <a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/> 
         </a:ext> 
         </a:extLst> 
        </a:blip> 
        <a:srcRect l="23111" r="19768" b="32841"/> 
        <a:stretch/> 
        </pic:blipFill> 
        <pic:spPr bwMode="auto"> 
        <a:xfrm> 
         <a:off x="0" y="0"/> 
         <a:ext cx="3389885" cy="4882125"/> 
        </a:xfrm> 
        <a:prstGeom prst="rect"> 
         <a:avLst/> 
        </a:prstGeom> 
        <a:noFill/> 
        <a:ln> 
         <a:noFill/> 
        </a:ln> 
        <a:extLst> 
         <a:ext uri="{53640926-AAD7-44D8-BBD7-CCE9431645EC}"> 
         <a14:shadowObscured xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/> 
         </a:ext> 
        </a:extLst> 
        </pic:spPr> 
       </pic:pic> 
       </a:graphicData> 
      </a:graphic> 
      </wp:inline> 
     </w:drawing> 

Notez qu'ils sont identiques, à l'exception de la ligne <a:srcRect l="23111" r="19768" b="32841"/> dans le second. Cela signifie que le rectangle source (c'est-à-dire les dimensions de l'image) est coupé/découpé/rogné de 23,111% sur la gauche, 19,768% sur la droite et 32,841% sur la partie inférieure. Le haut n'a pas été rogné.

+0

Pouvez-vous confirmer si cela s'applique toujours si le contenu n'est pas une fem? Certainement dans Word, ayant un canevas en ligne avec DrawingML, il n'y a pas d'option Ui pour le recadrer; alors qu'il y a si le contenu est un bitmap. Est-ce seulement disponible si le docx est édité directement? Aussi, j'ai converti une EMF en une forme et les parties recadrées sont devenues incluses dans la toile, rétrécissant le dessin global !! – axeman

+0

'scrRect' ne s'applique qu'aux blips (c'est-à-dire aux images bitmap de n'importe quel type) - il ne s'applique pas aux géométries personnalisées (' custGeom') ou VML. Dans Word 2007, lorsqu'un vecteur blip est déconstruit en un ensemble de géométries, il devient VML. Dans Word 2010, il devient d'abord un ensemble de 'custGeom' avec l'espace de noms' wpc' (WordProcessingCanvas) et ensuite un repli de VML afin qu'il puisse être affiché dans Word 2007. Dans les deux cas, ni autoriser l'ensemble de la toile à être découpé, dans l'interface utilisateur ou en code, uniquement les parties individuelles. –