|
This is an English language site, and we can only accept and answer questions in that language.
I have run this through Google Translate to produce a probably-good version, but you should check it and make sure it does say what you are actually asking.
Yes. You would need to read the PDF file into your Java app - this may help: How to Read and Write PDF file in Java - Studytonight[^]
Then extract the table info you need - we have no idea how the PDF file is organised, so that's going to be all your problem - and display it as normal.
Google Translate: Este é um site em inglês e só podemos aceitar e responder a perguntas nesse idioma.
Eu executei isso no Google Tradutor para produzir uma versão provavelmente boa, mas você deve verificar e certificar-se de que diz o que você está realmente perguntando.
sim. Você precisaria ler o arquivo PDF em seu aplicativo Java - isso pode ajudar: Como ler e gravar arquivo PDF em Java - Studytonight[^]
Em seguida, extraia as informações da tabela que você precisa - não temos ideia de como o arquivo PDF está organizado, então esse será todo o seu problema - e exiba-o normalmente.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class NewClass {
public static void main(String[] args) throws IOException{
try {
// Creating file instance
File file = new File("test.pdf");
// Loading pdf file
PDDocument document = PDDocument.load(file);
PDFTextStripper pdfStripper = new PDFTextStripper();
// Fetching PDF document
String text = pdfStripper.getText(document);
System.out.println(text);
// Closing the document
document.close();
}catch(Exception e) {
System.out.println(e);
}
}
}
/PDDocument document = PDDocument.load(file);/ In this line there is an error in load, and I can't run the project
|
|
|
|
|
Daniel Carvalho 2022 wrote: In this line there is an error in load, And that error would be what? I suspect it has to do with the file's relative path (which defaults to current [i.e., "./test.pdf"] if none is provided), but only you know for sure.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I've tried changing the path and it still has the same error. Is there any other way to perform the same function?
|
|
|
|
|
As David said:
➡️ And that error would be what? ⬅️
It's no use repeatedly telling us you have "the same error" when you've never told us what the error is.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Error?
FileNotFound
ClassNotFound
PdfFormatException
Full stack trace helps
|
|
|
|
|
The URL of the site is:
https://www.lowes.com/pd/7-16-CAT-PS2-10-OSB-Sheathing-Application-as-4-x-8/50382768[^]
The information that I am trying to obtain is the price. Using Chrome's Inspect view, I was able to drill down to the price element in question. The Xpath of that element looks like:
/html/body/div[3]/section/div/div[7]/div[1]/div[2]/div[1]/span/div[1] I really wanted to see that in some "tree" form, so I walked the HTML backward from that element back to the top. That looks like:
<html>
<body>
<div id="app">
<section role="main" id="main" class="app__Container-PDP__sc-9tcy1n-0 bglOQr">
<div class="style__ProductDetailsWrapper-PDP__sc-4buzay-0 fwCYaB">
<div class="style__Wrapper-PDP__sc-1a0l1ro-1 hiRMxh product-info">
<div class="style__ProductDescDeskWrapper-PDP__sc-1a0l1ro-6 fpGRzR">
<div class="style__ProductTitleWrapper-PDP__sc-1a0l1ro-11 fUmbqY">
<div tabindex="0" class="styles__PriceWrapper-sc-1c3t51u-0 ZQLLV priceWrapper">
<span class="finalPrice">
<div class="sc-hGPBjI eomYbK">$30.65 </div> I was able to throw some Java code together (read: ugly) to drill down to that level but got stopped at the next-to-last DIV element.
...
Elements elements = element.getElementsByAttributeValue("class", "style__ProductTitleWrapper-PDP__sc-1a0l1ro-11 fUmbqY"); This returns a 1-item collection as it should. If I then follow that with:
Element element = elements.get(0);
elements = element.getElementsByAttributeValue("class", "styles__PriceWrapper-sc-1c3t51u-0 ZQLLV priceWrapper"); It returns an empty collection. I assume this is because no such class could be found. However I can plainly see that DIV element in the Inspect view.
I can get the sibling elements to the one in question. I even tried searching for getElementsByAttributeValue("tabindex", "0") , and while it correctly found 2 elements, neither are the one I want.
Any idea(s) as to what I'm missing (or not understanding)?
Thanks.
DC
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
modified 20-Jan-22 16:23pm.
|
|
|
|
|
Did you try to skip the random in the middle?
Go straight for “class”, “finalPrice”
The extract the nested text node to skip the last div
|
|
|
|
|
Make a program that takes n numbers and computes the sum of
positive numbers. If the entered number is 0, the program will
terminate
|
|
|
|
|
Sorry, this site does not provide code to order. If you do not understand how to write a simple Java sample then take a look at Java Tutorials Learning Paths[^].
|
|
|
|
|
|
There are many excellent books that you could use to learn Java. Alternatively, you could look at courses and training videos on places like Pluralsight, Udemy and so on.
|
|
|
|
|
Use the link in my message above yours. It is a well presented tutorial which takes you from the basics right through to many of the advanced concepts.
|
|
|
|
|
import java.io.*;
public class SumOfPositive{
public static void main(String args[])throws Exception{
int sum=0;
System.out.println("Enter how many you need to add");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=br.readLine();
for(int i=0;i<n;i++)
{
if(a[i])="=0)
" system.exit(0);
="" if(a[i]="">0)
sum=sum+a[i];
}
System.out.println("Sum of positive numbers:"+sum);
}
}
|
|
|
|
|
i am using apache tomcat and am having trouble connecting my external style sheet to my jsp page.
i have tried google,stack overflow and can't find a solution to my problem.
my repository URL:<a href="https://github.com/jonathanIckovich/divina-popina.git">GitHub - jonathanIckovich/divina-popina</a>[<a href="https://github.com/jonathanIckovich/divina-popina.git" target="_blank" title="New Window">^</a>]
|
|
|
|
|
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the array");
int n = sc.nextInt();
int arr[]=new int[n];
System.out.println("Enter the elements of the array");
for(int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
}
DivArray(arr,0,arr.length-1);
for(int z:arr)
{
System.out.print(z+" ");
}
}
static void DivArray(int arr[],int low,int high)
{
if(low<high)
{
int mid=(low+high)/2;
DivArray(arr,low,mid);
DivArray(arr,mid+1,high);
MergeSort(arr,low,mid,high);
}
}
static void MergeSort(int arr[],int low,int mid,int high)
{
int i = low;
int k = low;
int j = mid+1;
int dummy[]=new int[arr.length];
while(i<=mid && j<=high)
{
if(arr[i]<arr[j])
{
dummy[k]=arr[i];
k++;
i++;
}else{
dummy[k]=arr[j];
k++;
j++;
}
}
while(i<=mid)
{
dummy[k]=arr[i];
k++;
i++;
}
while(j<=high)
{
dummy[k]=arr[j];
k++;
j++;
}
for(int q=0;q<arr.length;q++)
{
arr[q]=dummy[q];
}
}
}
OUTPUT:
Enter the size of the array
8
Enter the elements of the array
9 8 7 6 5 4 3 2
0 0 0 0 0 0 0 0
|
|
|
|
|
You need to use the debugger to find out exactly what is happening to your array in the DivArray and MergeSort methods.
|
|
|
|
|
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the array");
int n = sc.nextInt();
int arr[]=new int[n];
System.out.println("Enter the elements of the array");
for(int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
}
DivArray(arr,0,arr.length-1);
for(int z:arr)
{
System.out.print(z+" ");
}
}
static void DivArray(int arr[],int low,int high)
{
if(low<high)
{
int mid=(low+high)/2;
DivArray(arr,low,mid);
DivArray(arr,mid+1,high);
MergeSort(arr,low,mid,high);
}
}
static void MergeSort(int arr[],int low,int mid,int high)
{
int i = low;
int k = low;
int j = mid+1;
int dummy[]=new int[arr.length];
while(i<=mid && j<=high)
{
if(arr[i]<arr[j])
{
dummy[k]=arr[i];
k++;
i++;
}else{
dummy[k]=arr[j];
k++;
j++;
}
}
while(i<=mid)
{
dummy[k]=arr[i];
k++;
i++;
}
while(j<=high)
{
dummy[k]=arr[j];
k++;
j++;
}
for(int q=0;q<arr.length;q++)
{
arr[q]=dummy[q];
}
}
}
OUTPUT:
Enter the size of the array
8
Enter the elements of the array
9 8 7 6 5 4 3 2
0 0 0 0 0 0 0 0
modified 3-Dec-21 4:28am.
|
|
|
|
|
Move the code the displays the sorted array out of the MergeSort method, and into your Main method, after the call to DivArray .
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I am trying to extract date from a String (Line), to do a Date conversion, but my String concatenation (#1) gives incorrect result.
Adding a blank ("") at the start (#2) gives the correct result.
Why is this? Where does the "105" come from?
System.out.println("Line= " + Line);
char ch1 = Line.charAt(0), ch2 = Line.charAt(1);
char ch4 = Line.charAt(3), ch5 = Line.charAt(4);
char ch7 = Line.charAt(6), ch8 = Line.charAt(7),
ch9 = Line.charAt(8), ch10 = Line.charAt(9) ;
System.out.println("Text date= " + ch1 + ch2 + '/' + ch4 + ch5 + '/' +
ch7+ ch8+ch9+ch10);
String sDate1= ch1 + ch2 + "/" + ch4 + ch5 + '/' +
ch7+ ch8+ch9+ch10;
System.out.println("Not correct: sDate1= " + sDate1);
String sDate2= "" + ch1 + ch2 + "/" + ch4 + ch5 + '/' +
ch7+ ch8+ch9+ch10;
System.out.println("Correct: sDate2= " + sDate2);
Output:
Line= 09/12/2021
Text date= 09/12/2021
Not correct: sDate1= 105/12/2021
Correct: sDate2= 09/12/2021
|
|
|
|
|
It "thinks" you're doing "addition", then string concatenation in the first instance (0x30 + 0x39 == 105 == char(0) + char(9)); and all string concats in the second; due to the leading quote.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
Er, what exactly are you trying to do?
|
|
|
|
|
Im trying to extract the date from the string, then do a date conversion, but Im not able to extract the date correctly.
UPDATE:
Ok, I resolved this myself using the java substring function instead of trying to extract one character at a time:
String sTest = "09/21/2021 and other junk on the line";
System.out.println("sTest= " + sTest);
String sDate = sTest.substring(0, 10);
System.out.println("sDate= " + sDate);
Date date1=new SimpleDateFormat("MM/dd/yyyy").parse(sDate);
System.out.println(sDate +"\t"+date1);
now gives the expected result:
sTest= 09/21/2021 and other junk on the line
sDate= 09/21/2021
09/21/2021 Tue Sep 21 00:00:00 EDT 2021
modified 28-Nov-21 19:11pm.
|
|
|
|
|
Can someone help with this task?
Reuse the included class CA in order to provide graphical interface: instead of printing X's and blanks on the screen, black and white cells are drawn on the canvas depending on the CA's state. Your SwingCA class should accept a single argument representing a Wolfram's rule (handle exceptions!) and generate 600 generations each of size 400. For example, if you run java SwingCA 30 the image you get should resemble:
https://media.cheggcdn.com/media/59e/59e3b9d6-7ede-413d-a953-78cbb74e925b/phpYbnEbr[^]
REUSE THIS CLASS:
-----------------------------------------
public class CA {
// Data Members
private boolean[] cell;
private int size;
private int rule;
private boolean[] ttable;
// Constructor
public CA(int size, int rule) {
this.rule = rule;
this.size = size;
// Initialize Truth Table
ttable = new boolean[8];
for (int i = 0; i < ttable.length; i++) {
ttable[i] = (rule & 0x1) == 1? true: false;
rule >>= 1;
}
// Create Cells
cell = new boolean[size];
// Set Middle Cell To 1
cell[size / 2] = true;
}
// Compute And Return Next State
public boolean[] getState() {
// Array To Hold New State
boolean[] newCell = new boolean[size];
for (int i = 1; i < size - 1; i++) {
// Get Left Current And Right Values
int left = cell[i - 1]? 1 : 0;
int cur = cell[i] ? 1 : 0;
int right = cell[i + 1]? 1 : 0;
// Convert It To Decimal And Use It As Index For Rule Array
int ruleIdx = 4 * left + 2 * cur + 1 * right;
// Set New Cell Value To Rule TT Value
newCell[i] = ttable[ruleIdx];
}
// Update Cell Array
cell = newCell;
// Return New State
return cell;
}
}
|
|
|
|
|
Suave65 wrote: Can someone help with this task? Help in what way?
|
|
|
|