Files
MesPrintService/Print.Application/Print/PrintExtension.cs
2025-07-12 16:20:14 +08:00

55 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.AspNetCore.Builder;
using System;
using System.IO;
using System.Reflection;
namespace JingGong.Abp.Print.GoDEX
{
public static class PrintExtension
{
public static void AddGoDEX(this IApplicationBuilder applicationBuilder)
{
//注docker运行时需添加环境变量#ENV LD_LIBRARY_PATH=/app/libx64:$LD_LIBRARY_PATH
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libezio.so.1.1.0", "libx64/libezio.so.1.1.0");
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libttf_x64.so", "libx64/libttf_x64.so");
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libusb-1.0.so.0.3.0", "libx64/libusb-1.0.so.0");
//临时解决环境变量未生效问题
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libezio.so.1.1.0", "libezio.so.1.1.0");
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libttf_x64.so", "libttf_x64.so");
ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libusb-1.0.so.0.3.0", "libusb-1.0.so.0");
}
/// <summary>
/// 释放资源文件至本地文件
/// </summary>
/// <param name="resourceName"></param>
/// <param name="fileFullName"></param>
internal static void ExtractResourceToFile(string resourceName, string fileFullName)
{
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
if (stream == null)
return;
try
{
var dir = Path.GetDirectoryName(fileFullName);
if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
Directory.CreateDirectory(dir);
using (FileStream fileStream = new FileStream(fileFullName, FileMode.Create, FileAccess.Write))
{
stream.CopyTo(fileStream);
}
}
catch
{
Console.WriteLine($"写入{fileFullName}失败");
}
}
}
}
}