2011-06-02 15 views
5

Estoy creando archivos Word DOCX con gráficos vectoriales incrustados. Aparentemente DrawingML es ahora la forma preferida de insertar gráficos vectoriales. Tengo problemas para aprender a recortar un diagrama dentro del lienzo de dibujo. Parece seguir escalando mis formas dentro de la forma grupal.Recorte en DrawingML

Es posible clipping en DrawingML, y si es así, ¿alguien tiene un pequeño fragmento de código o XML para señalarme en la dirección correcta?

+0

¿Puedes publicar el XML de ejemplo que te gustaría recortar (por ejemplo, tu w: elemento de dibujo)? – JasonPlutext

Respuesta

2

Recorte en DrawingML es de la etiqueta <scrRect/>. Si está vacío, significa que está cortado. Esta etiqueta se utiliza para todos los gráficos visuales, tales como imágenes, formas, tablas, etc.

Toma estos dos ejemplos de una .EMF insertada en 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> 

y

<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> 

Tenga en cuenta que son los mismos, a excepción de la línea <a:srcRect l="23111" r="19768" b="32841"/> en el segundo. Lo que esto significa es que el rectángulo fuente (es decir, las dimensiones de la imagen) se corta/recorta/recorta un 23.111% de la izquierda, un 19.768% de la derecha y un 32.841% de la parte inferior. La parte superior no ha sido recortada.

+0

¿Puedes confirmar si esto sigue siendo válido si el contenido no es una fem? Ciertamente, en Word, con un lienzo en línea con DrawingML no hay una opción de Ui para recortarlo; mientras que si el contenido es un mapa de bits. ¿Está disponible solo si el docx se edita directamente? Además, convertí un EMF a una forma y las partes recortadas se incluyeron en el lienzo, ¡reduciendo el dibujo general! – axeman

+0

'scrRect' solo se aplica a los blips (es decir, imágenes de mapa de bits de cualquier tipo) - no se aplica a las geometrías personalizadas (' custGeom') o VML. En Word 2007, cuando un blip vectorial se deconstruye a un conjunto de geometrías, se convierte en VML. En Word 2010, se convierte primero en un conjunto de 'custGeom' con el espacio de nombres' wpc' (WordProcessingCanvas) y luego tiene un respaldo de VML para que pueda mostrarse en Word 2007. En cualquier caso, ninguno permite que todo el lienzo sea recortado, en la interfaz de usuario o en código, solo las partes individuales. –