Nhúng đồ họa vào tài liệu LaTeX bằng Java
Nhúng hình ảnh raster độ phân giải cao (PNG, JPEG, BMP) và hình minh họa vector (EPS, PDF) vào tài liệu LaTeX bằng Aspose.TeX for Java. Bằng cách sử dụng các gói LaTeX gốc như graphicx và cấu hình các thư mục làm việc đầu vào, nhà phát triển có thể biên dịch liền mạch các tài liệu chứa biểu đồ, hình minh họa, ảnh và đồ họa vector được nhúng thành các tệp đầu ra PDF, XPS và hình ảnh sẵn sàng để xuất bản.
Khi biên dịch các tài liệu LaTeX chứa các phần tử đồ họa, Aspose.TeX for Java sẽ phân giải các tệp hình ảnh được tham chiếu tương đối với IInputWorkingDirectory đã được cấu hình.
- Đối với ảnh, ảnh chụp màn hình raster và đồ họa web, hãy chọn định dạng PNG/JPEG được nhúng bằng các lệnh
\usepackage{graphicx}-\includegraphics{figure.png}. - Đối với các sơ đồ vector có độ chính xác cao và biểu đồ CAD/khoa học, hãy chọn định dạng EPS được nhúng bằng các lệnh
\usepackage{graphicx}-\includegraphics{diagram.eps}. - Đối với việc nhúng hình ảnh bitmap cũ, hãy chọn định dạng BMP/TIFF được nhúng bằng các lệnh
\usepackage{graphicx}-\includegraphics{image.bmp}.
Nhúng hình ảnh raster (PNG/JPEG) vào LaTeX
Để nhúng hình ảnh raster tiêu chuẩn, hãy thêm gói graphicx vào phần preamble của tài liệu LaTeX và chỉ định tên tệp hình ảnh đích trong \includegraphics{}.
import com.aspose.tex.*;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
public class EmbedRasterGraphicsInLaTeX {
public static void main(String[] args) throws Exception {
// Create LaTeX document string referencing an image file 'sample.png'
String latexCode = "\\documentclass{article}\n" +
"\\usepackage{graphicx}\n" +
"\\begin{document}\n" +
"\\section{Graphics Rendering Demo}\n" +
"Here is an embedded raster image:\n\n" +
"\\begin{figure}[h]\n" +
" \\centering\n" +
" \\includegraphics[width=0.5\\textwidth]{sample.png}\n" +
" \\caption{Sample PNG Image in LaTeX}\n" +
"\\end{figure}\n" +
"\\end{document}";
ByteArrayInputStream inputStream = new ByteArrayInputStream(latexCode.getBytes(StandardCharsets.UTF_8));
// Initialize conversion options for ObjectLaTeX
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input working directory where 'sample.png' is located
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Images/"));
// Set output working directory for compiled PDF
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Execute TeX job
TeXJob job = new TeXJob(inputStream, new PdfDevice(), options);
job.run();
System.out.println("LaTeX document with embedded PNG successfully compiled to PDF.");
}
}Nhúng đồ họa vector (EPS) vào LaTeX
Aspose.TeX xử lý nguyên bản đồ họa Encapsulated PostScript (.eps) khi biên dịch thông qua công cụ định dạng ObjectLaTeX.
import com.aspose.tex.*;
import java.io.IOException;
public class EmbedEPSGraphicsInLaTeX {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format engine
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Configure directory paths containing .tex source and .eps graphics
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/SourceWithEPS/"));
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Run job for 'document_with_eps.tex' containing \includegraphics{vector_chart.eps}
TeXJob job = new TeXJob("document_with_eps", new PdfDevice(), options);
job.run();
System.out.println("LaTeX document with vector EPS figure compiled successfully.");
}
}Tải tài nguyên đồ họa từ các tệp lưu trữ ZIP
Đóng gói các tệp nguồn TeX, gói macro và hình ảnh động vào một tệp lưu trữ .zip, đồng thời hướng dẫn Aspose.TeX phân giải các phụ thuộc đồ họa trực tiếp từ bộ nhớ hoặc bộ lưu trữ nén.
import com.aspose.tex.*;
import java.io.FileInputStream;
public class EmbedGraphicsFromZip {
public static void main(String[] args) throws Exception {
// Initialize LaTeX engine options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Open input ZIP archive containing 'main.tex' and 'figure.png'
FileInputStream zipStream = new FileInputStream("C:/TeXProject/ProjectWithAssets.zip");
options.setInputWorkingDirectory(new InputZipDirectory(zipStream, "src"));
// Define output destination
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));
// Run compilation job
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
zipStream.close();
System.out.println("Compiled LaTeX document with images embedded directly from ZIP file.");
}
}Cài đặt và thiết lập
Tích hợp Aspose.TeX for Java vào dự án của bạn bằng Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-tex</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Điều gì xảy ra nếu tôi không chỉ định tên công việc trong TeXOptions?
Nếu tên công việc không được cấu hình rõ ràng thông qua setJobName(), Aspose.TeX sẽ mặc định sử dụng tên tệp đầu vào chính (ví dụ: main.tex tạo ra main.pdf và main.log).
2. Làm thế nào để tắt hoàn toàn việc tạo tệp biên dịch .log?
Đặt options.setLogOutput(false) trước khi tạo và chạy TeXJob. Điều này ngăn công cụ tạo các tệp nhật ký phụ trợ trên đĩa hoặc trong thư mục làm việc đầu ra.
3. Tôi có thể thu thập các thông báo terminal TeX trong môi trường máy chủ/headless không?
Có. Việc gán một OutputMemoryTerminal tùy chỉnh hoặc triển khai IOutputTerminal cho phép bạn chuyển hướng tất cả thông báo stdout/stderr của terminal vào hệ thống ghi nhật ký doanh nghiệp của máy chủ (ví dụ: Log4j hoặc SLF4J).