Aspose.PDF에서 비내장형 CID 폰트에 관한 질문

image.png (8.1 KB)

-코드

using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;

class Program
{
static void Main()
{
string filePath = “font_test.pdf”;
Document pdfDocument = new Document(filePath);

    Font[] fonts = pdfDocument.FontUtilities.GetAllFonts(); 

    foreach (Font font in fonts)
    {
        Console.WriteLine($"Font Name: {font.FontName}");
    }
}

}

-결과

Font Name: μ¸¿oA¼
Font Name: μ¸¿oA¼,Bold

저는 사진과 같은 정보를 가진 폰트를 불러와 보았지만, 다음과 같이 폰트명이 깨져서 반환되었습니다.

Aspose.PDF에는 Embeded되지 않은 CID로 매핑된 폰트정보를 제대로 받아오고, 그 폰트를 시스템 기본 폰트에서 찾아서 Embeded 시킨 뒤에 PDF로 저장할 수 있는지 궁금합니다. 방법이 있다면 알려주시면 정말 감사드리겠습니다.

@2eemsk

Aspose.PDF에서 비내장형 CID 폰트 정보를 제대로 받아오고, 시스템 기본 폰트에서 찾아서 Embeded 시키는 방법에 대해 구체적으로 어떤 정보를 원하시는지 알려주실 수 있나요?

Aspose.PDF를 사용하여 PDF의 한국어 폰트정보(CID)를 깨지지 않은 온전한 폰트로 제대로 반환 해주고,
그 폰트명을 바탕으로 시스템 폰트에서 일치하는 폰트를 찾아서 PDF에 폰트를 Embedded된 상태로 PDF를 저장할 수 있는지 궁금합니다.

@2eemsk
귀하의 질문을 검토하고 곧 답변드리겠습니다.

@2eemsk
이런 코드를 시도해 볼 수 있습니다.
그러나 보다 정확한 권장 사항이 필요하면 작업 중인 문서와 문서에 사용된 글꼴 파일을 첨부해 주세요.
귀하의 스크린샷을 보면 문서에 사용된 글꼴의 정의에 오류가 있는 것으로 보입니다. 문서가 있으면 개발팀이 이를 수정하도록 작업을 생성할 것입니다.

using (var document = new Aspose.Pdf.Document("docname.pdf"))
{
    var tfa = new TextFragmentAbsorber();
    tfa.Visit(document);
    foreach(TextFragment fragment in tfa.TextFragments)
    {
        if (fragment.TextState.Font.IsEmbedded == false)
            fragment.TextState.Font.IsEmbedded = true;
    }

    document.Save(dataDir + "KoreanFontEmbedded.pdf");
}

답변 감사드립니다. 알려주신 코드를 바탕으로 실행해본결과, 여전히 폰트이름이 깨져서 제대로 읽지 못하는것 처럼 보입니다.

보안과 저작권 문제로 인해 직접 문서 파일을 첨부할 수는 없을 것 같습니다. 다만 PDF문서의 속성 정보에서 확인할 수 있는 폰트정보는 첨부된 이미지와 동일하고, 사용된 폰트와 동일한 폰트의 ttf 파일을 다운받을 수 있는 url을 공유드리겠습니다. (해당 폰트는 한국에서 윈도우에서 제공하는 한글 기본 폰트입니다.)

제가 생각했을 때, 폰트정보에 표시되고 있는 한글로 작성된 폰트명과 CID(Compressed ID) 방식으로 저장된 폰트 자체의 문제이거나, Encoding 형식이 Identity-H 형식이 아닌 KSCmc-UHC-H 형식으로 저장이 되어서 그런 것처럼 보여지는데 정확하게 원인을 모르겠습니다… 관련해서 확인해보고 왜 이런 이슈가 발생하는지에 대한 이유와 도움을 받을 수 있을까요??

[문제가 되는 PDF의 문서 속성 정보 → 폰트]
image.png (9.3 KB)

[문서에 사용된 폰트의 ttf 파일]
돋움체.ttf 파일: gulim/fonts/ttf/hinted/dotumche-Regular.ttf at main · googlefonts/gulim · GitHub

[사용한 코드]

using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;

class Program
{
static void Main()
{
// Load PDF document
string filePath = “font_test.pdf”; // PDF file path
string outputPath = “font_test_embedded.pdf”; // Modified file storage path

    Document pdfDocument = new Document(filePath);

    // Get all text in PDF document
    var tfa = new TextFragmentAbsorber();
    tfa.Visit(pdfDocument);

    bool isModified = false; // Check for changes

    foreach (TextFragment fragment in tfa.TextFragments)
    {
        if (fragment.TextState.Font != null && !fragment.TextState.Font.IsEmbedded)
        {
            Console.WriteLine($"{fragment.TextState.Font.FontName} Font is not embedded. Perform embedding..");
            fragment.TextState.Font.IsEmbedded = true;
            isModified = true;
        }
    }

    // Save if font has been modified
    if (isModified)
    {
        pdfDocument.Save(outputPath);
        Console.WriteLine($"Done saving the modified PDF: {outputPath}");
    }
    else
    {
        Console.WriteLine("All fonts are already embedded, so no changes.");
    }
}

}

[실행 결과]

μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
μ¸¿oA¼ Font is not embedded. Perform embedding…
μ¸¿oA¼,Bold Font is not embedded. Perform embedding…
Done saving the modified PDF: font_test_embedded.pdf

@2eemsk
파일을 PDF/A 형식으로 변환해 보는 것도 하나의 해결책이 될 수 있습니다.
이 형식을 사용하려면 문서에 사용된 모든 글꼴을 내장해야 합니다.
변환 코드는 다음과 같습니다.

using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
    document.Convert(dataDir + "log.xml", Aspose.Pdf.PdfFormat.PDF_A_2B, ConvertErrorAction.Delete);                
    document.Save(dataDir + "output.pdf");
}

문제가 있는 문서가 있으면 좋겠네요. 아마 그것을 합성해서 첨부해 볼 수도 있을 겁니다. 예를 들어, 텍스트와 해당 글꼴로 링크를 지정한 문서를 만들고 이를 PDF 프린터로 인쇄하는 방식입니다.

죄송합니다. 문제가 있는 문서의 전달이 어려운 관계로 발생하고 있는 문제들을 확인하실 수 있도록 같은 현상이 발생하는 테스트용 문서파일들을 만들어서 대신 공유드리려고 합니다.

[변환하면서 텍스트가 달라지는 이슈에 대한 문서 이미지]
비교 이미지 : image.png (112.1 KB)
.pdf 파일 : TEST5.pdf (11.4 KB)
폰트를 적용한 pdf 파일 : TEST5_FontTest.pdf (116.8 KB)

[변환하면서 텍스트의 위치가 달라지는 현상( powerpoint로 작성한 후 저장한 pdf파일 )]
비교 이미지 : image.png (67.7 KB)
.pdf 파일 : 0307Test2.pdf (39.8 KB)
폰트를 적용한 pdf 파일 : 0307Test2_FontTest2.pdf (341.8 KB)

위의 파일들을 아래와 같은 코드를 실행하여 폰트(DotumChe)를 적용해서 저장했습니다. ※ (pdf name)_FontTest.pdf
폰트를 적용하면 위의 첨부 이미지처럼 텍스트가 이상하게 달라져서 출력된다거나, 텍스트의 위치가 틀어지는(표) 문제들이 발생하고 있습니다.

using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;

namespace AsposePDF_FontTest
{
class Program
{
static void Main(string[] args)
{
System.IO.MemoryStream ms =
new System.IO.MemoryStream(AsposePDF_FontTest.Properties.Resources.Aspose_Total_NET);

        Aspose.Pdf.License license = new Aspose.Pdf.License();
        license.SetLicense(ms);


        //// Test5 PDF file
        //string inputPath = "0307Test2.pdf";
        //// Font Changed Test5 PDF file save path
        //string outputPath = "0307Test2_FontTest.pdf";

        // 0307Test2 PDF file (made in powerpoint)
        string inputPath = "0307Test2.pdf";
        // Font Changed 0307Test2 PDF file save path
        string outputPath = "0307Test2_FontTest.pdf";

        // Load PDF document
        Document pdfDocument = new Document(inputPath);

        // Search all text in a PDF document
        TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("[^\r\n]+");

        TextSearchOptions textSearchOptions = new TextSearchOptions(true);
        textFragmentAbsorber.TextSearchOptions = textSearchOptions;

        pdfDocument.Pages.Accept(textFragmentAbsorber);

        bool isModified = false; // Check for Modified

        TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

        // Font Load
        Font testFont = FontRepository.FindFont("DotumChe");
        if (testFont == null)
        {
            Console.WriteLine(testFont + "Font not found. Program will be terminated.");
            return;
        }

        // Change font by repeating all text fragments
        foreach (TextFragment fragment in textFragmentCollection)
        {
            try
            {
                // Check current font status
                Console.WriteLine($"Font before applying the testFont: {fragment.TextState.Font.FontName}");

                //// Change to testFont and embed font
                fragment.TextState.Font = testFont;
                fragment.TextState.Font.IsEmbedded = true;

                // Maintain text style
                fragment.TextState.FontSize = fragment.TextState.FontSize;
                fragment.TextState.ForegroundColor = fragment.TextState.ForegroundColor;
                fragment.TextState.FontStyle = fragment.TextState.FontStyle;

                Console.WriteLine($"'{fragment.Text}' →" + testFont + "Font application complete.");
                isModified = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Text => '{fragment.Text ?? "(null)"}' *An error occurred during processing: {ex.Message}");
            }
        }

        // Saved modified PDF
        if (isModified)
        {
            pdfDocument.Save(outputPath);
            Console.WriteLine($"\r\nSaved modified PDF completed: {outputPath}");
        }
        else
        {
            Console.WriteLine("All fonts have already been changed, no further changes required.");
        }
    }
}

}

혹시 답변에 도움이 될까 싶어서, 문제가 되는 PDF문서 파일의 위의 폰트 변경 코드를 실행하여 저장한 PDF파일의 일부 캡처 이미지를 보내드립니다. 다음과 같이 텍스트들의 대부분이 점 형태로 변경되버리는 이슈가 있습니다.

폰트 변경을 시도한 문제파일: image.png (17.0 KB)

시도하기 전 Documents Properties - Fonts : image.png (7.9 KB)

폰트 변경하여 저장한 파일의 Documents Properties - Fonts : image.png (4.3 KB)

ps.답변으로 알려주신 코드로 PDF/A 형식으로 변환해서 적용하는 방식도 시도해보았지만 위의 문제가 해결이 되지는 않았습니다.

@2eemsk
첨부하신 모든 PDF 문서에 대해 코드를 실행해 보았습니다.

var pdfDocument = new Document(dataDir + "K\\0307Test2_FontTest2 (1).pdf");
Aspose.Pdf.Text.Font[] fonts = pdfDocument.FontUtilities.GetAllFonts();

foreach (Aspose.Pdf.Text.Font font in fonts)
{
    Console.WriteLine($"Font Name: {font.FontName}");
}

모든 글꼴이 올바르게 표시됩니다.
다음으로 제공하신 파일에 대한 dotumche 글꼴 링크의 임베딩 작업을 시도하고 싶었습니다.
gulim/fonts/ttf/hinted/dotumche-Regular.ttf at main · googlefonts/gulim · GitHub 그러나 귀하가 제공한 모든 문서에는 이미 내장되어 있습니다.
k1.png (21.4 KB)
첨부 문서에 포함되지 않은 글꼴 파일을 첨부해 주시면 오류를 재현해 드리겠습니다.

첨부 문서에 포함되지 않은 글꼴파일 :
학교안심_알림장_R.zip (2.2 MB)

첨부 문서에 포함되지 않은 글꼴 파일을 첨부 했습니다.

보내주신 문서에는 내장되지 않은 글꼴이 두 개 있습니다: TEST5.pdf, TEST5_FontTest.pdf.
암호

var pdfDocument = new Document(dataDir + "K\\TEST5_FontTest.pdf");
Aspose.Pdf.Text.Font[] fonts = pdfDocument.FontUtilities.GetAllFonts();

foreach (Aspose.Pdf.Text.Font font in fonts)
{
    Console.WriteLine($"Font Name: {font.FontName}");
}

두 문서에 대해 다음과 같은 글꼴 이름을 제공합니다.
k2.png (7.3 KB)

지난 게시물에 보내주신 글꼴이 없습니다.
아니면 문서에 있는 기존 글꼴을 이 글꼴로 바꾸고 문서에 포함하는 옵션도 효과가 있을까요?

이슈 관련 첨부파일을 보고싶습니다. 그런데 아래와 같은 문구가 표출됩니다.
‘Sorry, this file is private. Only visible to topic owner and staff members.’

@dayoung
네, startertopics와 관리자만 첨부 파일을 다운로드하고 볼 수 있습니다.