我在我的FTP文件夹上构建PDF以通过守护进程发送它,该文件没问题,但是每次我把它放在那里这个文件都附有信息,PDF自然只会读取LAST指令,但为了创建一个干净的文件,我需要每次创建一个空白的PDF。
但如果我需要创建另一个包含相同图层但新信息的文件,我的过程就是创建一个带有某个名称的文件,然后找到旧文件并附上APPEND信息。
我需要删除该文件并添加新信息,我该怎么做以避免附加该信息?
代码:(它是PL_FPDF库,修改为在目录中写入文件)
Mat tempFrame;
cvtColor(BallFrame, tempFrame, COLOR_BGR2GRAY);
GaussianBlur(tempFrame, tempFrame, Size(15, 15), 2, 2); // remove noise
Mat imBw;
threshold(tempFrame, imBw, 220, 255, THRESH_BINARY); // High threshold to get better results
std::vector<std::vector<Point> > contours;
std::vector<Vec4i> hierarchy;
findContours(imBw, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
Point2f center;
float radius = 0.0;
for (int i = 0; i < contours.size(); i++)
{
double area = contourArea(contours[i]);
if (area > 1 && area < 4000) {
minEnclosingCircle(contours[i], center, radius);
if (radius < 50) // eliminate wide narrow contours
{
// You can use `matchShape` here to match your marker shape
}
}
}
PDF的内部代码如下所示:
--some code!
elsif (myDest = 'F') then
-- DFVD -- Enviar a directorio
-- Content Restriction
v_len := 1;
for i in pdfDoc.first..pdfDoc.last loop
v_clob := to_clob(pdfDoc(i));
if v_clob is not null then
v_in := 1;
v_out := 1;
v_lang := 0;
v_warning := 0;
v_len := dbms_lob.getlength(v_clob);
dbms_lob.convertToBlob(v_blob, v_clob, v_len, v_in, v_out, dbms_lob.default_csid, v_lang, v_warning);
dbms_lob.append(v_doc, dbms_lob.substr(v_blob, v_len));
end if;
end loop;
l_blob_len := DBMS_LOB.getlength(v_doc);
l_file := UTL_FILE.fopen('FTP_DIR',myName,'w', 32767);
WHILE l_pos < l_blob_len LOOP
DBMS_LOB.read(v_doc, l_amount, l_pos, l_buffer);
UTL_FILE.put_raw(l_file, l_buffer, TRUE);
l_pos := l_pos + l_amount;
END LOOP;
UTL_FILE.fclose(l_file);
else
--some code!
但文件还可以:
答案 0 :(得分:2)
经过短暂的研究后我找不到任何东西,所以我创建了一个补丁&#34;解决方案可能适用于这种情况:
--some code!
elsif (myDest = 'F') then
-- DFVD -- Enviar a directorio
-- Content Restriction
v_len := 1;
for i in pdfDoc.first..pdfDoc.last loop
v_clob := to_clob(pdfDoc(i));
if v_clob is not null then
v_in := 1;
v_out := 1;
v_lang := 0;
v_warning := 0;
v_len := dbms_lob.getlength(v_clob);
dbms_lob.convertToBlob(v_blob, v_clob, v_len, v_in, v_out, dbms_lob.default_csid, v_lang, v_warning);
dbms_lob.append(v_doc, dbms_lob.substr(v_blob, v_len));
end if;
end loop;
//CHECK IF FILE EXISTS
begin
l_file := UTL_FILE.fopen('FTP_DIR',myName,'r');
if UTL_FILE.is_open(l_file) then
UTL_FILE.fclose(l_file);
end if;
exception
when others then
NULL;
end;
//CHECK IF FILE EXISTS
l_blob_len := DBMS_LOB.getlength(v_doc);
l_file := UTL_FILE.fopen('FTP_DIR',myName,'w', 32767);
WHILE l_pos < l_blob_len LOOP
DBMS_LOB.read(v_doc, l_amount, l_pos, l_buffer);
UTL_FILE.put_raw(l_file, l_buffer, TRUE);
l_pos := l_pos + l_amount;
END LOOP;
UTL_FILE.fclose(l_file);
else
--some code!
现在程序检查文件是否存在以及是否存在&#34; fremove&#34;该文件以确保创建一个新文件。