Go to file
puzzlesion ec09c612b8 feat(java): implement PDF printing and block coordinate finding
This commit adds significant new functionality to the Aspose_CAD_Java project:

- CadToPdfPrinter.java: Enables direct printing of CAD files to PDF documents.

- ParameterizedCadPrinter.java & PrintByCoordinates.java: Provide advanced printing options, allowing for parameterized and coordinate-based exports.

- FindBlockCoordinates.java: A utility to locate block coordinates within CAD drawings, essential for automation.

The build system has been updated (pom.xml) to include these new classes, and new run scripts have been added for easier execution. Also includes a large set of examples from the official repository.

Relevant .specstory documentation has been added.
2025-09-12 17:20:50 +08:00
.specstory feat(java): implement PDF printing and block coordinate finding 2025-09-12 17:20:50 +08:00
01_Aspose_CAD_Python feat(python): add scripts for CAD to PDF conversion and block finding 2025-09-12 17:20:36 +08:00
02_Aspose_CAD_Java feat(java): implement PDF printing and block coordinate finding 2025-09-12 17:20:50 +08:00
03_Python_OpenSource_DXF chore: 提交剩余的杂项改动和新文件 2025-09-10 16:55:08 +08:00
04_Test_Files chore: 提交剩余的杂项改动和新文件 2025-09-10 16:55:08 +08:00
.cursorindexingignore Initial commit: Aspose.CAD for Python 问题分析与解决方案 2025-09-02 15:08:09 +08:00
.gitignore chore: 提交剩余的杂项改动和新文件 2025-09-10 16:55:08 +08:00
README.md Initial commit 2025-09-09 18:42:30 +08:00
requirements.txt Initial commit: Aspose.CAD for Python 问题分析与解决方案 2025-09-02 15:08:09 +08:00

Aspose.CAD DWG/DXF 处理:从 Python 问题到 Java 解决方案

📋 项目概述

本项目旨在评估和使用 Aspose.CAD 库处理 .dwg 文件。最初尝试使用 Aspose.CAD for Python但在深入测试后发现其 Python API 存在严重的设计缺陷,无法访问 CAD 文件的核心实体数据。

随后,项目转向 Aspose.CAD for Java,并成功实现了所有预定目标,包括:

  • 加载和解析 DWG 文件。
  • 提取所有的线条 (CadLine, CadLwPolyline) 和其他实体。
  • 根据颜色(例如绿色)筛选特定实体。
  • 将 DWG 文件成功转换为 PDF 和 DXF 格式。

🎯 最终结论

  1. Aspose.CAD for Python: 不推荐使用。其 API 存在根本性问题,返回的是通用 Image 对象,导致无法访问 entitieslayers 等 CAD 专用数据。此问题在多个版本中(从 22.2 到 25.3)普遍存在。
  2. Aspose.CAD for Java: 推荐的解决方案。Java API 功能完善且稳定,能够可靠地访问和操作 DWG 文件的所有实体,是进行 CAD 数据处理的可靠选择。

📁 项目文件结构

为了清晰地组织项目过程,所有文件已被归类到以下目录中:

.
├── 01_Aspose_CAD_Python/         # (归档) 所有 Python 版本的测试脚本和分析记录
├── 02_Aspose_CAD_Java/           # (成功) 完整的、可运行的 Java Maven 项目
├── 03_Python_OpenSource_DXF/     # (占位) 用于未来可能的 Python 开源库测试
├── 04_Test_Files/                # 所有用于测试的 .dwg 图纸文件
├── 05_Reports/                   # 所有生成的报告和转换文件 (.txt, .csv, .pdf, .dxf)
└── README.md                     # 本文档

🚀 Java 解决方案快速入门

这是本项目的核心成功部分。按照以下步骤运行 Java 代码。

环境要求

  • Java JDK 11 或更高版本
  • Apache Maven

如何运行

  1. 进入 Java 项目目录:

    cd 02_Aspose_CAD_Java/problem/java
    
  2. 使用 Maven 编译和执行: 该项目已配置 exec-maven-plugin,可以方便地运行不同的主类。打开 pom.xml 文件,修改 <mainClass> 属性来选择要运行的程序。

    例如,要运行 GreenLineExtractor

    <!-- pom.xml -->
    <properties>
        ...
        <mainClass>com.aspose.cad.examples.Lines.GreenLineExtractor</mainClass>
    </properties>
    

    然后执行以下命令:

    mvn clean compile exec:java
    

已实现的功能 (Java)

  • SimpleLineExtractor.java: 提取并打印一个 DWG 文件中所有的 CadLineCadLwPolyline 实体。
  • GreenLineExtractor.java: 筛选出所有颜色为绿色的线条,将结果保存到 green_lines.txt,并将 DWG 文件转换为 图签测试.pdf图签测试.dxf
  • ColorAnalyzer.java: 分析 DWG 文件中所有实体的颜色分布,并将报告写入 color_analysis.txt
  • ApiExplorer.java: 一个工具类,用于通过反射动态探查 CAD 实体对象的可用方法在API探索阶段非常有用。

🐍 Python 问题探索 (归档)

此部分仅为记录目的。在 01_Aspose_CAD_Python/ 目录中,包含了大量的测试脚本,用于验证不同版本的 Aspose.CAD for Python。

核心问题回顾

所有 Python 版本在加载 DWG 文件后,都无法将其识别为 CadImage 类型,而是返回一个通用的 Image 对象,导致无法访问 CAD 的内部结构。抛出的关键错误是: 'The given key Aspose.CAD.FileFormats.Cad.CadImage was not present in the dictionary'

这确认了问题源于 Aspose.CAD 的 Python API 封装,而非许可证或环境问题。

📄 许可证

本项目仅用于技术评估和研究。Aspose.CAD 是商业软件,在生产环境中使用时,请确保遵守其官方的许可证条款。