Aspose.CAD를 사용할 때 monochrome.ctb 설정

보내주신 코드 실행해보았으나, 저희가 원하는대로 도면이 pdf 변환되지 않고 있습니다.
원래의 색상에 선 두께의 가중치가 부여되어있고, 흑백으로 변환할 때 선의 가중치에 맞게 선의 두께가 달라지기를 희망합니다.

글꼴은 굵게 표현되면 안되고
image.png (813 바이트)

도면의 제품의 테두리는 굵게 표현되어야 합니다. (선 가중치에 따라)
image.png (1.7 KB)

관련 스크린샷 첨부드립니다.

ctb파일을 같이 실행시켜야 할 거 같은데, ‘DWG 파일 근처에 CTB 파일이 있으면’ 이거에 대해 '근처에 있다’는 게 정확히 어떤 의미인지 답변 부탁드리겠습니다!

@kdh0609,

"근처"는 제 프로젝트 예시처럼 DWG 파일 근처를 의미합니다. 또는 스트림으로 제공될 수도 있습니다.

귀하 측에서 PDF 결과를 첨부해 주시기 바랍니다.

줄과 글꼴의 선 굵기는 다른 문제입니다.

CTB 파일은 선 두께에 영향을 미치지 않습니다. 스크린샷을 보시면 도면에 사용된 빨간색의 경우 선 두께는 CTB 파일이 아닌 도면에서 가져옵니다.
monochrome_red.png (27.8 KB)

원형 부분의 선 두께는 도면에 명시된 대로 0.4mm입니다. PDF 캔버스 크기가 작으면 배율이 줄어들기 때문에 “굵게” 보일 수 있지만, 선 두께는 여전히 0.4mm이므로 “굵게” 보일 수 있습니다.
line_width.png (51.0 KB)

내보내기 전에 선의 너비를 늘리면 도움이 될 수 있습니다.

foreach (CadLayerTable layer in cadImage.Layers)
{
if (layer.LineWeight > 0)
{
layer.LineWeight *= 5;
}
}

현재 변환되는 pdf 와, 변한이 되어야 하는 모습의 pdf 파일 함께 첨부드리겠습니다.
ddd.pdf (585.9 KB)

result 파일처럼 pdf 변환이 되어야 합니다.
result.pdf (201.5 KB)

선의 너비를 늘리는 것은 도움이 되지 않았습니다.

@kdh0609,
현재로서는 이 결과가 우리가 달성할 수 있는 최선입니다.

using (CadImage cadImage = (CadImage)Aspose.CAD.Image.Load("SAMPLE.dwg"))
{
	CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
	rasterizationOptions.DrawType = CadDrawTypeMode.UseObjectColor;
	
	rasterizationOptions.PageHeight = 210;
	rasterizationOptions.PageWidth = 297;
	rasterizationOptions.Quality.TextThicknessNormalization = true;

	rasterizationOptions.Layouts = new string[] { "Model" };

	PdfOptions pdfOptions = new PdfOptions();
	pdfOptions.VectorRasterizationOptions = rasterizationOptions;

	cadImage.Save("output.pdf", pdfOptions);
}

output.pdf (595.0 KB)

우리 폰트가 원하는 예시보다 약간 더 굵어 보이긴 하지만, 당신 샘플에서는 폰트가 삼각형 형태로 처리되어 있어서(우리는 다른 방식으로 내보내기함) 더 얇게 보이는 것 같아요.

노력해주셔서 감사합니다.

그런데, PageHeight와 PageWidth 옵션의 값을 하드코딩하면 여러 크기의 도면을 변환할 때 문제가 되지 않나요?

저는 지금 메모리 스트림에 저장해두고 미리보기로 PDF 파일을 보여준 후,
사용자가 원할 때 PDF 파일로 저장을 시켜주고 있는데

어째서인지 PDF 파일을 미리보기할 때 각각 도면의 크기도 너무 다르고 안 보이는 도면도 있습니다.

@kdh0609,
까다로운 질문이므로 작업하는 도면의 종류(및 도면의 측정 단위)에 따라 가장 적합한 전략을 선택해야 합니다. 어떤 고객은 항상 A4 크기로 확대/축소하는 반면, 어떤 고객은 동적으로 확대/축소를 선택하거나, 어떤 고객은 값을 직접 입력하기도 합니다.

PageHeight/PageWidth를 설정하지 않으면 도면 크기(cadImage.Height/Width)에 따라 자동으로 정의됩니다. PageHeight/PageWidth는 1x1처럼 매우 작게 보이거나 DWG/DXF에서는 무한대로 보일 수 있으므로 설정하는 것이 좋습니다.

답변 감사합니다.

그런데,

당신 샘플에서는 폰트가 삼각형 형태로 처리되어 있어서(우리는 다른 방식으로 내보내기함) 더 얇게 보이는 것 같아요.

이 말이 혹시 어떤 의미일까요?
사용자한테 물어보니, 폰트는 기존처럼 유지되어야 한다고 합니다.

@kdh0609,
“result.pdf” 파일의 글꼴이 얇은 이유를 추측해 본 것입니다. (확대해서 보면) 기호들이 삼각형으로 표현된 것을 확인할 수 있습니다.
triangulation.png (22.9 KB)

확인했습니다.

하지만, 글꼴은 기본 '돋음체’를 사용하고 있다고 하는데
왜 저렇게 표현이 되어있는 건가요?

image.png (17.4 KB)

이런 형태로 플롯을 지정한다고 합니다.
혹시 여기에서 무언가 옵션을 설정해줘야 하는 부분이 있을까요?

@kdh0609,
"result.pdf"를 얻기 위해 어떻게 내보냈나요?

위에 첨부한 이미지(“image.png”)대로 하고, 영역만 설정한 후 '확인’버튼을 누르면 "result.pdf"처럼 출력이 되는 형식입니다.

@kdh0609,
제 결과를 첨부했는데, 이 효과는 보이지 않습니다. AutoCAD에서 텍스트 글자에 대해 삼각 측량을 수행하는 경우가 있는 것 같습니다.
SAMPLE-Model.pdf (247.7 KB)

오 맞아요 보내주신 샘플 파일처럼 글자가 얇게 나오면 될 거 같습니다!
PDF의 여백만 사라지고 저 형태로 나오면 될 거 같아요

혹시 어떻게 하면 저렇게 글자가 얇게 나오는 건가요?

@kdh0609,
AutoCAD가 왜 그런 내보내기 결과를 내놓는지 알 수 없습니다 :slight_smile:

아 보내주신 SAMPLE-Model 파일이 그냥 autocad에서 변환한 파일인가요?
저는 aspose에서 저렇게 할 수 있도록 방법을 찾아주신 걸로 생각했습니다. :joy:

@kdh0609,
아니요, AutoCAD에서 내보낸 후 더 좋아 보일 원하는 결과에 대해 논의했지만 안타깝게도 Aspose.CAD에는 여전히 필요한 것보다 약간 더 두껍게 보이는 글꼴이 있습니다 :slight_smile:

SAMPLE-Model.pdf

그러면 이 파일처럼 ASPOSE에서 변환을 할 수 없다는 건가요?
이 파일이 제가 원하던 방식이었습니다.

@kdh0609,
네, Aspose.CAD를 사용하면 가장 좋은 결과는 마지막 코드 예제에 따르면 위에 설명한 대로 더 두꺼운 글꼴이 됩니다.

네 알겠습니다
답변 감사합니다.

1 Like

안녕하세요

저희 나라가 '한국’이어서 한글 폰트가 적용이 되지 않아서 생기는 문제인가 해서
혹시나 하는 마음에 도면 작업 시 사용했던 폰트도 공유드립니다.

혹시 이걸로 테스트 한번 부탁드려도 괜찮을까요?
gulim.zip (4.9 MB)