几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】pdf export problem (http://www.dimcax.com/hust/showthread.php?t=17872)

yang686526 2009-05-06 09:50 PM

【转帖】pdf export problem
 
pdf export problem
pdf export problem
the text in the pdf is not generated fine when you set "ttf as geometry" as false.
it is happening when you have a text in the dwg that opens a bracket '(' in a line and close it in the next one.
i try it with the mfcapp 2.3.1 and with 2.4 and is also happening.
i am attaching an example.
attached files
hello,
thank you for bug report. it is defect in the pdf export. pdf has limitation for non pair parenthesis in the text string. in one word, '(' ')' '\' should be changed to '\(' '\)' '\\'. it will be fixed in the next release.
thanks you for your reply. i will try what you are saying
alexander.
i meant: alexander, thanks you for your reply. i will try what you are saying.
gustavo

alexander, i've tried what you said but it didn't work. this is what i did, please tell me if i misunderstood something.
the text before any modification in the dwg is :
{\farial|b0|i0|c0|p34;hi, this is a test with brackets (this bracket is closed in the next line).\phi, this is similar but with enter line (this bracket is\p closed in the next line).\p(this is a bracket closed in the same line)\panother test but with square bracket [ this square bracket is closed in the next line]\phere another \{ bla bla bla \pbla bla\}}
after the modification you suggested the text is:
{\farial|b0|i0|c0|p34;hi, this is a test with brackets \(this bracket is closed in the next line\).\phi, this is similar but with enter line \(this bracket is\p closed in the next line\).\p\(this is a bracket closed in the same line\)\panother test but with square bracket [ this square bracket is closed in the next line]\phere another \{ bla bla bla \pbla bla\}}
am i doing something wrong? i also try by modifing only one of the barckets.
thanks in advance
gustavo
hello,
the defect is inside pdfexport. you cannot fix it by changing user side application. you should change pdfexport code ( it is open source ).
in pdf2dexportdevice::dc_drawunicodetext add next code :
code:
pdfdocument &pdfdoc = document();
pdftextstringptr ptext = pdftextstring::createobject(pdfdoc);
ptext->set((const char *)unicodestr.asarrayptr(), unicodestr.size()*sizeof(unicodestr[0]), false );
// new code start
//ptext->fixparenthesis(); // fix '(' ')' '\' -> '\(' '\)' '\\'
for(oduint32 f=0; f<ptext->str().size(); ++f)
{
if (ptext->str()[f] == '\\' || ptext->str()[f] == '(' || ptext->str()[f] == ')')
{
ptext->str().insertat(f, '\\'); ++f;
}
}
// new code end
pdficontentcommands *pout = cc();
pout->bt();
one comment also. this code fixes text output defect, but pdfexport has the same problem with filling of title, author, subject, keywords, creator, producer fields. this defect will be fixed in next release, just don't use symbols '(' ')' '\' in fields.
thanks again alexander. it works !!
gustavo
alexander, the last question.
when i use the pdfexported from code some text like "distribuci髇" appears in the pdf as "distribuci?n".
if try with odaapp it works.
what am i missing?
hello,
i think that something with the font search mechanism. mfcapp has own font search functionality. findfile... and so on.


所有的时间均为北京时间。 现在的时间是 05:40 AM.