một câu hỏi khác về phân tích cú pháp pdf ... Chỉ cần đọc phiên bản PDF Reference 1.7 "5.3.1 Nhà điều hành định vị văn bản" và tôi hơi bối rối.Lấy vị trí văn bản trong khi phân tích cú pháp pdf với Quartz 2D
Tôi đã viết một số mã để lấy ma trận chuyển đổi và vị trí văn bản ban đầu.
CGPDFOperatorTableSetCallback (table, "MP", &op_MP);//Define marked-content point
CGPDFOperatorTableSetCallback (table, "DP", &op_DP);//Define marked-content point with property list
CGPDFOperatorTableSetCallback (table, "BMC", &op_BMC);//Begin marked-content sequence
CGPDFOperatorTableSetCallback (table, "BDC", &op_BDC);//Begin marked-content sequence with property list
CGPDFOperatorTableSetCallback (table, "EMC", &op_EMC);//End marked-content sequence
//Text State operators
CGPDFOperatorTableSetCallback(table, "Tc", &op_Tc);
CGPDFOperatorTableSetCallback(table, "Tw", &op_Tw);
CGPDFOperatorTableSetCallback(table, "Tz", &op_Tz);
CGPDFOperatorTableSetCallback(table, "TL", &op_TL);
CGPDFOperatorTableSetCallback(table, "Tf", &op_Tf);
CGPDFOperatorTableSetCallback(table, "Tr", &op_Tr);
CGPDFOperatorTableSetCallback(table, "Ts", &op_Ts);
//text showing operators
CGPDFOperatorTableSetCallback(table, "TJ", &op_TJ);
CGPDFOperatorTableSetCallback(table, "Tj", &op_Tj);
CGPDFOperatorTableSetCallback(table, "'", &op_apostrof);
CGPDFOperatorTableSetCallback(table, "\"", &op_double_apostrof);
//text positioning operators
CGPDFOperatorTableSetCallback(table, "Td", &op_Td);
CGPDFOperatorTableSetCallback(table, "TD", &op_TD);
CGPDFOperatorTableSetCallback(table, "Tm", &op_Tm);
CGPDFOperatorTableSetCallback(table, "T*", &op_T);
//text object operators
CGPDFOperatorTableSetCallback(table, "BT", &op_BT);//Begin text object
CGPDFOperatorTableSetCallback(table, "ET", &op_ET);//End text object
Vì vậy, đây là sản phẩm sau khi ăn trưa ứng dụng:
2010-09-02 15:09:23.041 testSearch[8251:207] op_BT begin
Integer value: 0
2010-09-02 15:09:23.043 testSearch[8251:207] op_BT end
2010-09-02 15:09:23.043 testSearch[8251:207] op_Tf begin
Integer value: 1
2010-09-02 15:09:23.044 testSearch[8251:207] op_Tf end
2010-09-02 15:09:23.044 testSearch[8251:207] op_Tm begin
Float value: 557.364197
2010-09-02 15:09:23.045 testSearch[8251:207] op_Tm end
2010-09-02 15:09:23.045 testSearch[8251:207] op_TJ begin
2010-09-02 15:09:23.046 testSearch[8251:207] Array string value [0]: F
2010-09-02 15:09:23.046 testSearch[8251:207] Array integer value [1]: 94985208
2010-09-02 15:09:23.047 testSearch[8251:207] Array string value [2]: r
2010-09-02 15:09:23.047 testSearch[8251:207] Array integer value [3]: 94985208
2010-09-02 15:09:23.048 testSearch[8251:207] Array string value [4]: o
2010-09-02 15:09:23.048 testSearch[8251:207] Array integer value [5]: 94985208
2010-09-02 15:09:23.049 testSearch[8251:207] Array string value [6]: m s
2010-09-02 15:09:23.049 testSearch[8251:207] Array integer value [7]: 94985208
2010-09-02 15:09:23.049 testSearch[8251:207] Array string value [8]: a
2010-09-02 15:09:23.050 testSearch[8251:207] Array integer value [9]: 94985208
2010-09-02 15:09:23.050 testSearch[8251:207] Array string value [10]: m
2010-09-02 15:09:23.051 testSearch[8251:207] Array integer value [11]: 94985208
2010-09-02 15:09:23.051 testSearch[8251:207] Array string value [12]: p
2010-09-02 15:09:23.052 testSearch[8251:207] Array integer value [13]: 94985208
2010-09-02 15:09:23.053 testSearch[8251:207] Array string value [14]: l
2010-09-02 15:09:23.054 testSearch[8251:207] Array integer value [15]: 94985208
2010-09-02 15:09:23.055 testSearch[8251:207] Array string value [16]: e t
2010-09-02 15:09:23.055 testSearch[8251:207] Array integer value [17]: 94985208
2010-09-02 15:09:23.057 testSearch[8251:207] Array string value [18]: o r
2010-09-02 15:09:23.057 testSearch[8251:207] Array integer value [19]: 94985208
2010-09-02 15:09:23.058 testSearch[8251:207] Array string value [20]: e
2010-09-02 15:09:23.058 testSearch[8251:207] Array integer value [21]: 94985208
2010-09-02 15:09:23.059 testSearch[8251:207] Array string value [22]: s
2010-09-02 15:09:23.059 testSearch[8251:207] Array integer value [23]: 94985208
2010-09-02 15:09:23.060 testSearch[8251:207] Array string value [24]: u
2010-09-02 15:09:23.061 testSearch[8251:207] Array integer value [25]: 94985208
2010-09-02 15:09:23.061 testSearch[8251:207] Array string value [26]: l
2010-09-02 15:09:23.062 testSearch[8251:207] Array integer value [27]: 94985208
2010-09-02 15:09:23.062 testSearch[8251:207] Array string value [28]: t
2010-09-02 15:09:23.063 testSearch[8251:207] op_TJ end
Nếu ai đó quen thuộc với ma trận văn bản và khai thác vị trí văn bản nó sẽ được tốt đẹp để giải thích như thế nào tất cả những công việc điều.
Cách tính vị trí văn bản (hoặc glyph?) Bằng cách sử dụng Tm (ma trận chuyển đổi và dữ liệu khác)?
bạn đã tìm hiểu làm thế nào để sử dụng những nhà khai thác? Cảm ơn! – pt2ph8