实现图纸批量打印 使用C++ API遍历图纸中的所有图纸(通常是DWG文件)并执行打印操作:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "aced.h"
#include "dbdict.h"
#include "dbents.h"
#include "acedads.h"
#include "acedcmd.h"
#include "acdocman.h"
#include "adslib.h"
#include "dbfiler.h"
#include "adscodes.h"
#include <iostream>
 
void BatchPrint(const char* folderPath) {
    struct dirent *de;  // 目录项结构体
    DIR *dr = opendir(folderPath); // 打开目录
    if (dr == nullptr) {
        return; // 目录打开失败
    }
    while ((de = readdir(dr)) != nullptr) { // 读取目录项
        if (de->d_type == DT_REG) { // 只处理文件
            std::string fileName = de->d_name;
            if (fileName.find(".dwg") != std::string::npos) { // 检查文件扩展名是否为.dwg
                acDocManager->Open(folderPath, fileName.c_str(), NULL, NULL, NULL, NULL); // 打开图纸文件
                acDocManager->Document()->Print(); // 打印图纸
                acDocManager->CloseDocument(acDocManager->Document()); // 关闭图纸文件
            }
        }
    }
    closedir(dr); // 关闭目录流
}