gpt4 book ai didi

adobe-indesign - 如何使用 IDMLlib 从 IDML 文件中提取图像

转载 作者:行者123 更新时间:2023-12-01 10:52:09 27 4
gpt4 key购买 nike

我需要解析一个 IDML 文件,并以适用于 Web 的格式将图像与该文件分开保存。我可以做那个 IDMLlib 吗?如果可能的话,你能给我看一些例子吗?附言该库的文档很糟糕,示例也很糟糕。

最佳答案

是的,您可以使用 IDMLlib 或通过编写自己的 IDML 解析器(这是我所做的)来做到这一点。

IDML 中的图像可以嵌入或链接。要提取嵌入的图像,您需要找到内容节点,如 Jongware 所述。

以下是未嵌入图像的 IDML 示例:

<Image ItemTransform="1 0 0 1 -32.04 -35.04" Self="uf4" Name="$ID/" Visible="true" AppliedObjectStyle="ObjectStyle/$ID/[None]" GradientFillHiliteAngle="0" GradientFillHiliteLength="0" LocalDisplaySetting="Default" GradientFillAngle="0" GradientFillLength="0" GradientFillStart="0 0" VerticalLayoutConstraints="FlexibleDimension FixedDimension FlexibleDimension" HorizontalLayoutConstraints="FlexibleDimension FixedDimension FlexibleDimension" OverriddenPageItemProps="" LastUpdatedInterfaceChangeCount="" TargetInterfaceChangeCount="" ParentInterfaceChangeCount="" ImageTypeName="$ID/JPEG" ImageRenderingIntent="UseColorSettings" EffectivePpi="300 300" ActualPpi="300 300" Space="$ID/#Links_RGB">
<Properties>
<Profile type="string">$ID/None</Profile>
<GraphicBounds Right="64.08" Left="0" Bottom="70.08" Top="0"/>
</Properties>
<TextWrapPreference TextWrapMode="None" TextWrapSide="BothSides" ApplyToMasterPageOnly="false" Inverse="false">
<Properties>
<TextWrapOffset Right="0" Left="0" Bottom="0" Top="0"/>
</Properties>
<ContourOption ContourPathName="$ID/" IncludeInsideEdges="false" ContourType="SameAsClipping"/>
</TextWrapPreference>
<Link Self="uf7" LinkResourceSize="0~6561" LinkImportTime="2012-09-03T15:23:30" LinkImportModificationTime="2012-05-22T15:25:15" LinkImportStamp="file 129821703152428740 25953" ExportPolicy="NoAutoExport" ImportPolicy="NoAutoImport" CanPackage="true" CanUnembed="true" CanEmbed="true" ShowInUI="true" LinkObjectModified="false" LinkResourceModified="false" LinkClientID="257" LinkClassID="35906" StoredState="Normal" LinkResourceFormat="$ID/JPEG" LinkResourceURI="file:D:/Pictures/hkp.jpg" AssetID="$ID/" AssetURL="$ID/"/>
<ClippingPathSettings IncludeInsideEdges="false" Index="-1" AppliedPathName="$ID/" InsetFrame="0" Tolerance="2" Threshold="25" UseHighResolutionImage="true" RestrictToFrame="false" InvertPath="false" ClippingType="None"/>
<ImageIOPreference AlphaChannelName="$ID/" AllowAutoEmbedding="true" ApplyPhotoshopClippingPath="true"/>
</Image>

要找到图像,您需要找到 Link节点是 Image 的子节点节点,并提取 LinkResourceURI的值属性,这是图像的路径。这是一个本地路径,因此您需要在编写 IDML 的同一台机器上执行所有这些操作。

要使 IDML 文档可在机器之间移植,您需要使用 InDesign 中的“链接”面板嵌入图像。

关于adobe-indesign - 如何使用 IDMLlib 从 IDML 文件中提取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17791916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com