设计自动化API-V3
我想使用Forge进行以下操作: 上传一个pdf文件 将其附加到dwg文件 使用PdfImport autocad命令转换pdf 保存并下载dwg
但是 伪造过程在附加过程中给我一个错误:
T:\ Aces \ AcesRoot \ 23.1 \ coreEngine \ Exe \ acdwfmarkupcore.crx找不到所需的dll或其他文件。
可以正确上传pdf文件并正确找到
问题似乎在附加过程中 该附件是我们的纯api产品之一,可手动创建PdfDefinition和pdfReference
下一个问题:是否可以链接PdfImport Autocad命令??
预先感谢
吕克
public static void SampleAttach(string fileName, Database database, Transaction transaction)
{
DBDictionary nod = (DBDictionary)transaction.GetObject(database.NamedObjectsDictionaryId, OpenMode.ForWrite);
string defDictKey = UnderlayDefinition.GetDictionaryKey(typeof(PdfDefinition));
if (!nod.Contains(defDictKey))
{
using (DBDictionary dict = new DBDictionary())
{
nod.SetAt(defDictKey, dict);
transaction.AddNewlyCreatedDBObject(dict, true);
}
}
DBDictionary pdfDict = (DBDictionary)transaction.GetObject(nod.GetAt(defDictKey), OpenMode.ForWrite);
BlockTable bt = (BlockTable)transaction.GetObject(database.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
ObjectId idPdfDef;
using (PdfDefinition pdfDef = new PdfDefinition())
{
pdfDef.SourceFileName = fileName;
pdfDef.ItemName = "1";
if (pdfDef.Loaded)
{
idPdfDef = pdfDict.SetAt(string.Format(@"{0} - {1}", Path.GetFileNameWithoutExtension(fileName).ToRestrictiveName(), pdfDef.ItemName), pdfDef);
transaction.AddNewlyCreatedDBObject(pdfDef, true);
using (PdfReference pdf = new PdfReference())
{
pdf.DefinitionId = idPdfDef;
pdf.Rotation = 0;
pdf.Position = new Point3d(0, 0, 0.0);
btr.AppendEntity(pdf);
transaction.AddNewlyCreatedDBObject(pdf, true);
}
}
}
}
答案 0 :(得分:0)
很抱歉,Forge Design Automation不支持PDFIMPORT命令。 由于各种许可限制。