package de.hybris.training.core.job;
import com.lowagie.text.Document;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import de.hybris.platform.cronjob.enums.CronJobResult;
import de.hybris.platform.cronjob.enums.CronJobStatus;
import de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable;
import de.hybris.platform.servicelayer.cronjob.PerformResult;
import de.hybris.training.core.facade.impl.TotalCustomerFacadeImpl;
import de.hybris.training.core.model.UsersFindCronJobModel;
import java.util.List;
import java.awt.*;
import java.io.File;
import java.io.FileOutputStream;
public class UsersFindJob extends AbstractJobPerformable<UsersFindCronJobModel> {
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(UsersFindJob.class);
TotalCustomerFacadeImpl totalCustomerFacade = new TotalCustomerFacadeImpl() ;
@Override
public PerformResult perform(UsersFindCronJobModel cronJobModel) {
try {
// Retrieve firstName from the cronJob
String firstName = cronJobModel.getFirstName();
// Display Hello firstName
LOG.info("**********************************");
LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");
LOG.info("Hello " + firstName);
LOG.info("**********************************");
LOG.info("**********************************");
LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");LOG.info("**********************************");
LOG.info("***********************************");
createSamplePDF( totalCustomerFacade.findCustomerContainingName(firstName));
// In case of success return result: SUCCESS and status: FINISHED
return new PerformResult(CronJobResult.SUCCESS, CronJobStatus.FINISHED);
} catch(Exception e) {
// In case of exception return result: ERROR and status: ABORTED
return new PerformResult(CronJobResult.ERROR, CronJobStatus.ABORTED);
}
}
public static void createSamplePDF(List<String> firstNames) throws Exception{
Document documento = new Document();
//Create new File
File file = new File("C:/newFileName.pdf");
file.createNewFile();
FileOutputStream fop = new FileOutputStream(file);
PdfWriter.getInstance(documento, fop);
documento.open();
//Fonts
Font fontHead = new Font(Font.DIALOG, 15, Font.BOLD);
Font fontBody = new Font(Font.DIALOG, 12, Font.BOLD);
//Tabla for body
PdfPTable tabla = new PdfPTable(firstNames.size());
for (int i = 0; i < firstNames.size(); i++) {
tabla.addCell(new Phrase(firstNames.get(i)));
}
documento.add(tabla);
documento.close();
fop.flush();
fop.close();
}
}
这是我的班级。 Intellij没有显示任何错误,但是当我让所有人干净的时候,那些来了:
[yjavac] 1.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第3行)
[yjavac] import com.lowagie.text.Document;
[yjavac] ^^^^^^^^^^^
[yjavac]导入com.lowagie无法解决
[yjavac] ----------
[yjavac] 2.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第5行)
[yjavac] import com.lowagie.text.Phrase;
[yjavac] ^^^^^^^^^^^
[yjavac]导入com.lowagie无法解决
[yjavac] ----------
[yjavac] 3.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第7行)
[yjavac] import com.lowagie.text.pdf.PdfPTable;
[yjavac] ^^^^^^^^^^^
[yjavac]导入com.lowagie无法解决
[yjavac] ----------
[yjavac] 4.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第8行)
[yjavac] import com.lowagie.text.pdf.PdfWriter;
[yjavac] ^^^^^^^^^^^
[yjavac]导入com.lowagie无法解决
[yjavac] ----------
[yjavac] 5.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第75行)
[yjavac]文件documento =新文件();
[yjavac] ^^^^^^^^^ [yjavac]文件无法解析为类型
[yjavac] ----------
[yjavac] 6.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第75行)
[yjavac]文件documento =新文件();
[yjavac] ^^^^^^^^^ [yjavac]文件无法解析为类型
[yjavac] ----------
[yjavac] 7.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第80行)
[yjavac] PdfWriter.getInstance(documento,fop);
[yjavac] ^^^^^^^^^
[yjavac] PdfWriter无法解决
[yjavac] ----------
[yjavac] 8.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第88行)
[yjavac] PdfPTable tabla = new PdfPTable(firstNames.size());
[yjavac] ^^^^^^^^^
[yjavac] PdfPTable无法解析为类型
[yjavac] ----------
[yjavac] 9.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第88行)
[yjavac] PdfPTable tabla = new PdfPTable(firstNames.size());
[yjavac] ^^^^^^^^^
[yjavac] PdfPTable无法解析为类型
[yjavac] ----------
[yjavac] 10.错误 C:\ HYBRISCOMM6600P \的hybris \ BIN \定制\培训\ trainingcore的\ src \日\的hybris \培训\核心\工作\ UsersFindJob.java (第91行)
[yjavac] tabla.addCell(new Phrase(firstNames.get(i)));
[yjavac] ^^^^^^
[yjavac]短语无法解析为类型
[yjavac] ----------
[yjavac] 10个问题(10个错误)
我还将itextpdf-5.1.0.jar
导入<classpathentry kind="lib" path="lib/itextpdf-5.1.0.jar"/>
但仍然相同(复制jar之后,除了放入.classpath之外没有做任何其他事情)
为什么我会收到错误?
网上都没有解决方案。他们都没有为hybris。
我该怎么办?我找不到java类的方法。我需要导出为给定字符串数组列表的pdf。
答案 0 :(得分:1)
您遵循的步骤非常适合导入com.lowagie
。
我认为您需要关注itextpdf doc版本。使用最新版本(itextpdf-5.1.0.jar)com.itextpdf
不存在。您应该使用com.lowagie
代替{{coord|33|21|30.5|S|70|41|50.4|W|scale:5000}}
This answer将帮助您解决问题。
您可以参考this blog。
答案 1 :(得分:0)
默认情况下,hybris包含扩展lib文件夹中的所有库。在IDE中,您需要自己引用库。也许你混淆了lib文件夹?检查是否将lib放入
\的hybris \ BIN \定制\训练\ trainingcore \ lib中