설치
개요
Aspose.Slides for Node.js via .NET는 npm 패키지 aspose.slides.via.net입니다. 이 패키지는 edge-js 브리지를 통해 Node.js 내부에서 Aspose.Slides .NET 라이브러리를 실행하므로, 정상적인 설치를 위해서는 Node.js와 .NET가 모두 필요합니다.
이 문서에서는 초기 환경에서 프레젠테이션을 만드는 첫 번째 프로그램까지 안내합니다. 네 단계가 있습니다: edge-js 오버라이드를 사용해 프로젝트를 만들고, npm에서 패키지를 설치하고, 패키지의 .NET 종속성을 한 번 복원한 후, 프로젝트 폴더에서 스크립트를 실행합니다.
전제 조건
- Node.js 22 또는 24 LTS, x64 빌드, nodejs.org에서 다운로드.
- .NET SDK 8 이상, dotnet.microsoft.com에서 다운로드. .NET 런타임만으로는 충분하지 않습니다. 아래 복원 단계와 스크립트 실행 시 브리지 모두 SDK가 필요합니다. 설치된 SDK를 확인하려면
dotnet --list-sdks를 실행하십시오. - Linux 전용:
- npm이 Linux에서 설치 중 edge-js를 컴파일하므로
python3,make,g++빌드 도구가 필요합니다. - Aspose.Slides 네이티브 드로잉 라이브러리가 로드하는 fontconfig 라이브러리.
- Debian의 경우 이 패키지는
python3,make,g++,libfontconfig1입니다.
- npm이 Linux에서 설치 중 edge-js를 컴파일하므로
이 문서의 단계는 다음 플랫폼에서 테스트되었습니다:
| 플랫폼 | 결과 |
|---|---|
| Windows x64 with Node.js 22 or 24 | 동작합니다. Microsoft Visual C++ 재배포 가능 패키지가 설치된 상태에서 테스트되었습니다. |
| Linux x64 with Node.js 22 or 24, where the system OpenSSL is from the same release line as the OpenSSL built into Node.js, such as Debian 13 | 동작합니다. |
| Linux where the two OpenSSL versions differ, such as Debian 12 | 프레젠테이션을 생성할 때 Node.js가 세그멘테이션 오류로 충돌합니다. |
| macOS | 검증되지 않음. |
Linux에서는 시작하기 전에 두 버전을 비교하십시오. 첫 번째 명령은 Node.js에 내장된 OpenSSL 버전을 출력하고, 두 번째는 시스템 버전을 출력합니다. 두 버전이 동일한 주요 및 부 버전(예: 3.5)으로 시작하는 시스템을 사용하십시오:
node -p process.versions.openssl
openssl version
openssl 명령을 찾을 수 없으면 먼저 openssl 패키지를 설치하십시오.
프로젝트 만들기
프로젝트용 폴더를 만들고 초기화한 뒤, npm이 설치할 edge-js 릴리즈를 지정하는 오버라이드를 추가합니다:
mkdir hello-slides
cd hello-slides
npm init -y
npm pkg set overrides.edge-js=26.1.0
패키지는 Windows 바이너리가 Node.js 20까지 지원되는 오래된 edge-js 릴리즈를 요구합니다. 따라서 오버라이드가 없으면 Windows에서 첫 번째 스크립트가 “The edge module has not been pre-compiled for node.js version” 오류와 함께 중단됩니다. 이 명령은 package.json의 overrides 섹션에 오버라이드를 기록합니다; 패키지를 설치하기 전에 추가하십시오.
패키지 설치
npm에서 Aspose.Slides for Node.js via .NET를 설치하십시오:
npm install aspose.slides.via.net
설치 중에 패키지는 네이티브 드로잉 라이브러리(파일 이름에 aspose.slides.drawing.capi가 포함된 파일)를 package.json 옆의 프로젝트 폴더에 복사합니다.
패키지는 releases.aspose.com에서도 ZIP 아카이브로 제공됩니다. 이 문서는 npm을 통한 설치만 다룹니다.
.NET 종속성 복원
패키지에는 Aspose.Slides .NET 어셈블리가 포함되어 있지만, 해당 어셈블리가 의존하는 20개의 NuGet 패키지는 포함되어 있지 않습니다. 실행 시 .NET은 NuGet 패키지 캐시에서 이를 찾습니다: Windows에서는 %USERPROFILE%\.nuget\packages, Linux에서는 ~/.nuget/packages, 혹은 NUGET_PACKAGES 환경 변수에 설정된 폴더. 캐시가 비어 있으면 첫 번째 스크립트가 “assembly specified in the dependencies manifest was not found” 오류와 함께 중단됩니다.
캐시를 채우려면 프로젝트 폴더에 deps 라는 폴더를 만들고, 그 안에 deps.csproj라는 파일을 다음 내용으로 저장하십시오. 각 PackageDownload 항목은 괄호 안 정확한 버전의 패키지를 하나씩 다운로드합니다; 빌드는 수행되지 않습니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageDownload Include="Humanizer.Core" Version="[2.14.1]" />
<PackageDownload Include="Microsoft.Bcl.AsyncInterfaces" Version="[6.0.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.Common" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.CSharp" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.VisualBasic" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="[4.5.0]" />
<PackageDownload Include="Microsoft.DotNet.InternalAbstractions" Version="[1.0.0]" />
<PackageDownload Include="Microsoft.Extensions.DependencyModel" Version="[7.0.0]" />
<PackageDownload Include="Newtonsoft.Json" Version="[13.0.3]" />
<PackageDownload Include="System.Composition.AttributedModel" Version="[6.0.0]" />
<PackageDownload Include="System.Composition.Convention" Version="[6.0.0]" />
<PackageDownload Include="System.Composition.Hosting" Version="[6.0.0]" />
<PackageDownload Include="System.Composition.Runtime" Version="[6.0.0]" />
<PackageDownload Include="System.Composition.TypedParts" Version="[6.0.0]" />
<PackageDownload Include="System.IO.Pipelines" Version="[6.0.3]" />
<PackageDownload Include="System.Reflection.Metadata" Version="[6.0.1]" />
<PackageDownload Include="System.Text.Encodings.Web" Version="[7.0.0]" />
<PackageDownload Include="System.Text.Json" Version="[7.0.0]" />
</ItemGroup>
</Project>
그런 다음 프로젝트 폴더에서 복원하십시오:
dotnet restore deps/deps.csproj
이 단계는 머신당 한 번만 수행하면 됩니다; 패키지는 NuGet 캐시에 남으며 동일 머신의 다른 프로젝트에서도 사용됩니다. 복원 후 deps 폴더를 삭제해도 됩니다.
첫 프로그램 실행
프로젝트 폴더에 hello.js 파일을 생성하고 아래 코드를 넣으십시오. 이 코드는 프레젠테이션을 생성하고, 첫 번째 슬라이드에 텍스트 “Hello, World!“가 들어간 사각형을 추가한 뒤, 결과를 hello.pptx로 저장합니다:
const asposeSlides = require("aspose.slides.via.net");
const { Presentation, ShapeType, SaveFormat } = asposeSlides;
// 새 프레젠테이션에는 빈 슬라이드가 하나 포함됩니다.
const presentation = new Presentation();
try {
const slide = presentation.slides.get(0);
// 위치와 크기는 포인트(1/72 인치) 단위이며: x, y, 너비, 높이.
const rectangle = slide.shapes.addAutoShape(ShapeType.Rectangle, 50, 50, 400, 100);
rectangle.addTextFrame("Hello, World!");
presentation.save("hello.pptx", SaveFormat.Pptx);
console.log("Saved hello.pptx");
} finally {
// 프레젠테이션을 지원하는 .NET 객체를 해제합니다.
presentation.dispose();
}
프로젝트 폴더에서 실행하십시오:
node hello.js
스크립트는 Saved hello.pptx를 출력합니다. hello.pptx를 열어 텍스트가 들어간 채워진 사각형이 포함된 슬라이드 한 장을 확인하십시오. 라이선스가 없으면 Aspose.Slides는 평가 워터마크도 추가합니다; 자세한 내용은 Evaluate Aspose.Slides 및 Licensing를 참조하십시오.
Note
스크립트를 실행할 때는package.json이 포함된 프로젝트 폴더에서 실행하십시오. hello.pptx와 같은 상대 경로는 현재 폴더를 기준으로 해석되며, 일부 머신에서는 다른 폴더에서 시작된 스크립트가 프레젠테이션을 만들 수 없습니다.
JavaScript API는 Aspose.Slides for .NET을 그대로 반영합니다: 클래스는 .NET 이름을 유지하고, 속성과 메서드는 camelCase(Slides는 slides, AddAutoShape는 addAutoShape)를 사용하며, 컬렉션 항목은 get(index)로 읽습니다. 이 패키지에 별도의 API 레퍼런스는 없으며, 클래스 및 멤버 상세는 Aspose.Slides for .NET API reference를 활용하십시오. 예: Presentation 및 ShapeCollection.AddAutoShape.
FAQ
“The edge module has not been pre-compiled for node.js version"은 무슨 의미인가요?
npm이 패키지가 요구하는 오래된 edge-js 릴리즈를 설치했습니다. Create a Project 섹션의 오버라이드를 추가하고 npm install을 다시 실행하십시오.
“assembly specified in the dependencies manifest was not found"은 무슨 의미인가요?
.NET 종속성이 NuGet 캐시에 없습니다. 동일 실행은 또한 “edge.initializeClrFunc is not a function” 오류를 보고합니다. Restore the .NET Dependencies 섹션을 한 번 수행한 뒤 스크립트를 다시 실행하십시오.
Linux에서 “The edge native module is not available"은 무슨 의미인가요?
npm install 중 edge-js가 컴파일되지 않았기 때문일 수 있습니다(예: python3, make, g++가 없었음). npm은 이를 오류로 보고하지 않습니다. 빌드 도구를 설치한 뒤 프로젝트 폴더에서 npm rebuild edge-js를 실행하십시오.
빈 “Error"와 함께 프레젠테이션 생성이 실패하는 이유는 무엇인가요?
Linux에서는 libfontconfig1(Debian)과 같은 fontconfig 라이브러리가 설치되어 있는지 확인하십시오; 없으면 네이티브 드로잉 라이브러리를 로드할 수 없습니다. 모든 시스템에서 스크립트를 프로젝트 폴더에서 실행하는지도 확인하십시오.
Linux에서 Node.js가 세그멘테이션 오류로 충돌하는 이유는 무엇인가요?
시스템 OpenSSL과 Node.js에 내장된 OpenSSL이 서로 다른 릴리즈 라인에 속합니다. Prerequisites에서 보여준 대로 버전을 비교하고, 두 버전이 일치하는 배포판이나 Node.js 빌드를 사용하십시오.
모든 프로젝트마다 NuGet 복원을 반복해야 하나요?
아니요. 복원은 사용자 계정의 NuGet 캐시를 채우며, 해당 머신의 모든 프로젝트가 동일한 캐시를 사용합니다.